Skip to main content

作用域

#Script 参考

博客

  • 函数在执行前就已经确定了其父级作用域,与函数在哪执行没有关系,以函数声明的位置为主;

  • 执行代码查找变量属性时,会沿着作用域链一层层往上查找(沿着VO往上找),如果一直找到全局对象中还没有该变量属性,就会报错未定义;

ECS:

执行上下文栈(Execution Context Stack),也可称为调用栈,以栈的形式调用创建的执行上下文

GEC

全局执行上下文(Global Execution Context),在执行全局代码前创建

FEC

函数执行上下文(Functional Execution Context),在执行函数前创建

VO

Variable Object,早期ECMA规范中的变量环境,对应Object

VE

Variable Environment,最新ECMA规范中的变量环境,对应环境记录

GO

全局对象(Global Object),解析全局代码时创建,GEC中关联的VO就是GO

AO

函数对象(Activation Object),解析函数体代码时创建,FEC中关联的VO就是AO