JavaScript 的静态作用域链与“动态”闭包链

读完本文会解答你以下疑问:

  • 静态作用域链和动态作用域链的区别
  • 为什么会有闭包
  • 闭包什么时候创建的
  • [[scopes]] 属性是什么
  • 闭包保存什么内容
  • 闭包存储在哪
  • 为什么 eval 性能不好
  • eval 什么情况下会创建闭包

在 JavaScript 里面,函数、块、模块都可以形成作用域(一个存放变量的独立空间),他们之间可以相互嵌套,作用域之间会形成引用关系,这条链叫做作用域链。

作用域链具体是什么样呢?

阅读更多