深入JavaScript

深入之词法作用域和动态作用域

JavaScript 采用词法作用域(lexical scoping),也就是静态作用域。

var value = 1;

function foo() {
    console.log(value);
}

function bar() {
    var value = 2;
    foo();
}

bar();

// 结果是 1

原因也很简单,因为JavaScript采用的是词法作用域,函数的作用域基于函数创建的位置。

根据书写的位置,查找上面一层的代码,也就是 value 等于 1,所以结果会打印 1。

发布了121 篇原创文章 · 获赞 13 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Vansal/article/details/103417028
今日推荐