javascript函数(生成器)中的访问变量



在Javascript假设我有一个生成器,我不能修改源代码。我迭代了几次,现在想看看生成器的内部变量。我如何在不改变生成器本身代码的情况下做到这一点?更具体地-

async function* myGen(){
while (true){
let a = something
yield something_else
} 
}
let gen = myGen()
for await (const data of gen){
if(data === special_value){
let my_a = get_value_of_a(gen) // this is the function i want
}
}

如果生成器不产生a的值(或使您能够访问a的值),则无法访问它。a是生成器函数中的一个局部变量。它不能从该函数外部访问(除非你做了一些事情使其可访问,但你说你不能修改生成器函数)。

换句话说:a的值是保存在函数返回的生成器对象中的私有信息。如果生成器对象不提供这样做的方法,则不能访问该私有信息,而生成器函数创建的私有信息在默认情况下是不提供的。

全局变量可以从类或命名空间. ...的任何位置访问如果在这些作用域中定义了一个变量,那么它对当前作用域和嵌套在其中的作用域都是可见的。简单来说:在循环内声明的变量在循环外是不可见的。

var global = "Global Variable"; //Define global variable outside of function.
​    function setGlobal(){
global = "Hello World!";
};
setGlobal();
console. log(global); //This will print out "Hello World"

最新更新