【发布时间】:2017-04-20 03:20:24
【问题描述】:
我们知道
function foo () {
var x = 10;
var y = 20;
function bar () {
return x + 1;
}
bar(); // 11
}
函数bar创建一个闭包,并保存x的引用。
但是变量y 呢?创建的闭包bar 会保留它的引用吗?我在 Chrome 开发工具中尝试过,它在[[Scopes]] 字段中只显示x,没有y。但我找不到任何关于此的文章。
这是否意味着闭包创建只会选择它需要保存的内容?
【问题讨论】:
-
您是在问根据规范应该发生什么,或者不同的引擎如何实现闭包?
-
为什么
bar会引用y? -
@nnnnnn:关闭为重复?
-
请注意,在显示的代码中,在
foo()之外没有引用bar(),因此闭包概念并不真正相关。
标签: javascript closures