09 作用域链
结论:作用域链(outer指向的上一个上下文)由函数声明的位置决定。下面是帮助理解的例子:
先开看一段代码:输出的结果应该是什么? – bye,坑
原因:JavaScript 作用域链是由词法作用域决定的,词法作用域就是根据代码的位置来决定的,详见下文分析
作用域链:JavaScript 引擎首先会在“当前的执行上下文”中查找该变量,如果在当前的变量环境中没有查找到,那么 JavaScript 引擎会继续在 outer 所指向的执行上下文中查找。
注意:在每个执行上下文的变量环境中,都包含了一个外部引用,用来指向外部的执行上下文,我们把这个外部引用称为outer
词法作用域(outer来源)
词法作用域定义:指作用域是由代码中 函数声明的位置 来决定的。
JavaScript 作用域链是由词法作用域决定的,词法作用域就是根据代码的位置来决定的。