gpt4 book ai didi

javascript - 为什么 Chrome 调试器在 Closure 中访问变量时未定义?

转载 作者:可可西里 更新时间:2023-11-01 02:11:53 31 4
gpt4 key购买 nike

<分区>

代码:

function test4() {
var x = 10;
var y = 100;
// inner referred x only
function inner () {
console.log(x);
debugger;
}
// inner2 referred y to make sure y is in the scope of inner
function inner2 () {
console.log(y);
}
return inner;
}
var foo = test4();
foo();

yinner 的范围内,甚至只有从未使用过的 inner2 引用它。我检查了范围内的结果,xy 在那里:

x and y in closure

但是当我在监视面板和控制台中检查变量时,我无法获取所有变量:

can't get y in watch panel

y 在范围内但在使用调试器时未定义,这很奇怪。那么,这是否意味着调试器无法访问当前上下文中未使用的变量,即使它在闭包中,还是只是一个错误? (我的chrome版本是51.0.2704.103m)

类似于Why does Chrome debugger think closed local variable is undefined?但不一样。因为我的代码中的 inner2 确保 y 在闭包中。实际上我的问题与Louis's answer相反在那个问题下。

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com