理解js作用域和闭包(3)—— 作用域和作用域链

105 阅读1分钟

域: 范围区域

在js中,作用域分为全局用域局部作用域(es6有了块级作用域) 全局作用域:由script标签产生的区域,从计算机的角度可以理解为window对象
局部作用域:由函数产生的区域,从计算机的角度可以理解为该函数的AO对象

作用域链

在js中函数存在一个隐式属性[[scopes]]这个属性用来保存当前函数在执行时的环境(上下文),由于在数据结构上是链式的,也被称为作用域链我们可以把它理解成一个数组

image.png

image.png

示例

image.png

示例代码的作用域链生成如下: image.png