3. 作用域链 - cw84973570/Learning-notes GitHub Wiki
https://github.com/mqyqingfeng/Blog/issues/6
因为JS使用的是词法作用域,也就是静态作用域,所以函数的作用域在函数定义的时候就确定了。
当函数创建的时候,会保存所有的父变量对象到函数的内部属性[scope](/cw84973570/Learning-notes/wiki/scope)
中,不包括函数内部的作用域。
当函数激活(我理解为代码将要执行函数时,需要将其”激活“,来进行一些预处理,即创建执行上下文)时,会将活动对象添加到作用域链的顶端。
创建函数执行上下文时,会将函数[scope](/cw84973570/Learning-notes/wiki/scope)
属性复制到执行上下文对象中来创建作用域链,并初始化活动对象AO,随后将其压入到作用域链的顶端,至此作用域链创建完成Scope: [AO, [Scope](/cw84973570/Learning-notes/wiki/Scope)]
,之后开始执行函数。