我一直在做一些JavaScript閱讀,並且我已經知道閉包只能訪問閉包「包裝」它,或者,你可能會說它是直接父項。現在我玩了一下,我在this jsfiddle中看到,即使深層嵌套函數也可以訪問定義好的變量。爲什麼深層嵌套函數可以訪問頂層變量?
任何人都可以解釋一下嗎?或者解釋我完全錯了什麼?
http://jsfiddle.net/tPQ4s/function runNums() {
this.topVar = 'blah';
return function(){
(function() {
(function() {
console.log(topVar);
})();
})();
}
}
var someFunc = runNums();
someFunc();
是的,閉包「關閉」它在所有父級可以看到的變量。 – Max 2011-12-25 11:48:22
一個封閉的函數可以看到所有的方式嗎? – MeLight 2011-12-25 11:51:39
如果你真的從某個地方閱讀過,你可能想停止閱讀有明顯錯誤信息的材料:P當然,它可以訪問所有父母級別。 – Esailija 2011-12-25 11:55:17