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