访问 javascript 函数内的变量(生成器)
Access variable inside javascript function (generator)
在 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
的值是生成器对象函数 returns 中保存的私有信息。如果生成器对象不提供这样做的方法,则您无法访问该私有信息,而生成器函数创建的那些默认情况下不提供。
可以从 class 或命名空间中的任何位置访问全局变量。 ...如果在这些范围中的任何一个中定义了一个变量,它将对当前范围和嵌套在其中的范围可见。简单来说:在循环内声明的变量在循环外是不可见的。
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"
在 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
的值是生成器对象函数 returns 中保存的私有信息。如果生成器对象不提供这样做的方法,则您无法访问该私有信息,而生成器函数创建的那些默认情况下不提供。
可以从 class 或命名空间中的任何位置访问全局变量。 ...如果在这些范围中的任何一个中定义了一个变量,它将对当前范围和嵌套在其中的范围可见。简单来说:在循环内声明的变量在循环外是不可见的。
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"