词法作用域(静态作用域)
词法作用域也叫静态作用域,jsvascript为词法作用域。
词法作用域关心的是你的函数申明环境,即你从何处声明,作用域链就继承谁。如下:
var num=1;
function a(){
console.log(num)
}
function b(){
var num=2;
a()
}
b() // 结果输出1
因为a申明的环境是全局,所以不会管是否在b调用,当前环境找不到,直接向外找。找到全局的num。
动态作用域
动态作用域关心的是你调用的环境,以上为例,他会关心你是从b里面调用的,会直接找到num=2的申明。
结果就会输出2。但是上面说了,javascript是词法作用域,所以不要有这种担心,只是了解这个概念就好了。
EMD...
网友评论