我正在尝试理解 JavaScript 中的闭包。闭包是函数的局部变量——在函数返回后保持事件状态[ reference ]。
在许多引用文献中,我看到他们在描述函数闭包时考虑父函数。但根据下面的例子,我认为函数不仅可以访问父函数中的变量,还可以访问祖函数及以上函数中的变量。
有人可以解释一下我的想法是否正确吗? 提前谢谢您..
test1 = function() {
var x = 10;
return function(){
alert(++x);
};
}
test2 = function() {
var x = 10;
return function(){
return function(){
alert(++x);
}
};
}
t1 = test1();
t1(); //11
t1(); //12
t2 = test2()();
t2(); //11
t2(); //12
最佳答案
是的,每个作用域都可以访问其父作用域,这是一种传递关系 - 当您的父作用域可以访问祖 parent 的变量,并且您可以访问父辈的变量时,您也可以访问你的祖 parent (及其 parent )。
关于Javascript 闭包 - 父函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26676035/