阅读一些关于javascript执行上下文的文章。我现在的观点如下(如果我错了,请纠正我)。
执行上下文是执行JS代码的环境。有三种类型的执行上下文:
eval()
函数内。执行上下文是一个堆栈,其中可以在堆栈上推送项目(如果调用新函数)并弹出堆栈(返回函数时)。
JS引擎分两个阶段创建执行上下文:
在创建阶段,JS引擎调用了一个函数,但它的执行还没有开始。在创作过程中会发生3个事件:
我想这就是在Javascript中形成闭包的方式。
任何人都可以清楚地解释activation object
和variable object
之间的区别以及这与闭包有何关系吗?
答案 0 :(得分:0)
变量对象(VO)是所有父作用域的数组。因此,每当查找变量值时。它首先在Active Object中查找。如果该值在AO中不可用。寻找VO具有定义的第一个VO元素。您可以将VO想象为
purrr
VO = [AO1,AO2, AO3, AO4]
current Active object is AO
All the AO are objects here
lets say you look for the value of variable.
VO is iterated and if any varibale found with the same name, value is
注意:我不太了解vo和Ao的内部结构。我很开心 如果我错了,请纠正自己