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