我试图理解javascripts中的闭包。闭包是函数返回后保持活动的函数的局部变量[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发布于 2014-10-31 15:05:56
是的,每个作用域都可以访问其父作用域,这是一个传递关系--当父作用域可以从您的父级访问变量,并且您可以从您的父级访问变量时,那么您也可以访问您的祖父母(及其父母)的变量。
https://stackoverflow.com/questions/26676035
复制相似问题