JavaScript范围链

我已经阅读过Java的作用域链,但对我来说却没有任何意义,有人可以告诉我什么是作用域链,以及作用域与图形或什至是白痴都能理解的方式。我用谷歌搜索,但没有找到可理解的东西:(

回答:

要了解作用域链,您必须知道闭包是如何工作的。

当您嵌套函数时,会形成一个闭包,内部函数即使在其父函数已经执行后,也可以引用其外部封装函数中存在的变量。

JavaScript通过遍历范围链(从本地到全局)来解析特定上下文中的标识符。

考虑具有三个嵌套函数的此示例:

var currentScope = 0; // global scope

(function () {

var currentScope = 1, one = 'scope1';

alert(currentScope);

(function () {

var currentScope = 2, two = 'scope2';

alert(currentScope);

(function () {

var currentScope = 3, three = 'scope3';

alert(currentScope);

alert(one + two + three); // climb up the scope chain to get one and two

}());

}());

}());

以上是 JavaScript范围链 的全部内容, 来源链接: utcz.com/qa/397359.html

回到顶部