0
我们知道JavaScript Closure会将所有变量保存在其作用域中,还是只保存那些闭包?
function foo() {
var x = 10;
var y = 20;
function bar() {
return x + 1;
}
bar(); // 11
}
功能bar
创建一个闭包,并保存x
参考。
但是变量y
呢?关闭bar
会创建它的参考吗?我在Chrome开发工具中试过,并且在[[Scopes]]
字段中只显示x
,没有y
。但我找不到任何有关这方面的文章。
这是否意味着封闭创建只会选择它需要保存的内容?
你问根据规范应该发生什么或不同的引擎如何实现闭包? –
http://stackoverflow.com/questions/32325223/over-how-much-of-its-enclosing-scope-does-a-javascript-closure-close – nnnnnn
为什么“bar”会保存对“y”的引用? – guest271314