js词法作用域

Posted 妮小朱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js词法作用域相关的知识,希望对你有一定的参考价值。

词法作用域就是说在词法分析的时候就已经形成了的作用域。这个时候已经定死了。如果一个函数在全局里面声明了,她的父级作用域就是全局作用域。一个函数的作用域只有可能存在于一个父级作用域里面。不会同时存在两个父级作用域。

 var a = 2;
function foo() {
    console.log( a );
    console.log(this.a);
    console.log(this);
}
function bar() {
    var a = 3;
    foo();
}
bar(); //2. 2. window

而如果是动态作用域的话,不关心在哪里声明的,只关心他是在哪里调用的。动态作用域是基于调用栈的。而不是代码中的嵌套关系。js中this就是与函数在哪里调用有关。

以上是关于js词法作用域的主要内容,如果未能解决你的问题,请参考以下文章

js中的词法作用域

js中的词法作用域

js 函数作用域, 块级作用域和词法作用域

区分词法作用域(js)与动态作用域(精!)

js词法作用域

js 欺骗词法作用域