我一直在做一些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