来看一下几个乍看看不懂的概念:
举例:
a函数被定义时发生如下过程:
先不要细琢磨上面GO里放置的各个属性。上面a.[[scope]]还没有构成一个链,只有GO对象的存在,下面继续。
a函数被执行时,发生如下过程:
a函数执行前一刻所产生的AO对象放到了a函数作用域a.[[scope]]的顶端;现在a.[[scope]]上已构成一个链.
再继续研究刚刚的例子:
也就是说b函数刚刚出生时所在的环境是a执行的结果,直接给b函数的出生创造好了环境。
b函数被执行时,发生如下过程:
b函数执行前一刻产生的AO对象放置在b.[[scope]]的最顶端。现在透彻地理解一下,在函数b中去访问变量时,是在b函数的作用域[[scope]]最顶端去查找变量。