1
在this accepted popular answer关闭被解释。我理解这个概念,并可以使用它,但我的问题是相当术语,看看这个简单的例子:正确的关闭术语,或究竟是什么叫做关闭
function foo(x) {
var tmp = 3;
function bar(y) {
alert(x + y + (++tmp)); // will alert 16
}
bar(10);
}
foo(2);
那么究竟应该称为一个封闭的位置:bar
?或foo
?或tmp
?或者他们都在一起?
你看社区wiki是如何调用bar
的一个闭包,是不是正确?那么我如何在对话中提及tmp
和foo
?它们是否也被称为闭包,或者在闭包和闭包访问器中的变量或其他?或者bar被称为外部关闭,foo是内部关闭?
'bar'是关闭的,'tmp'是一个局部变量,'foo'是一个函数。 – Afforess 2014-10-29 19:26:57
@Afforess每个变量被称为变量 – exebook 2014-10-29 19:28:30
Closure是一个函数+它的作用域函数被创建在一起。这是* closure *。 – dfsq 2014-10-29 19:28:34