词法作用域&动态作用域

词法作用域(静态作用域)

词法作用域也叫静态作用域,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...

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容