当我尝试调试此代码时(
http://jsfiddle.net/QWFGN/
)
var foo = (function(numb) {
return {
bar: function() {
debugger;
return "something";
}
}
})(1);
foo.bar()
Chrome中的开发人员工具与Firefox中的Firebug和IE中的开发工具的行为不同
numb
在Chrome开发工具中不可见
上
debugger;
线但是,它在Firebug和IE中是可见的。如果我尝试键入
麻木的
在Chrome的控制台中,我得到:
ReferenceError: numb is not defined
麻木的
当然,在这个闭包中是可见的,如果我将代码更改为(
http://jsfiddle.net/QWFGN/1/
)
var foo = (function(numb) {
return {
bar: function() {
debugger;
console.log(numb);
return "something";
}
}
})(1);
foo.bar()
麻木的
现在在Chrome中也可以看到,我可以获得价值
1
作为回应。
所以,我的问题是:
为什么只有谷歌浏览器看不到从未使用过的闭包变量?
谷歌Chrome是否有自己的垃圾回收实现,或者它只与谷歌Chrome中调试工具的实现有关。