[[scope]]:每个JavaScript函数都是一个对象,对象中有些属性我们可以访问,但是有些不可以,这些属性进供JavaScript引擎存取,[[scope]]就是其中一个。
[[scope]]指的就是我们所说的作用域,其中存储了运行上下期上下文的集合;
作用域链:[[scope]]中所存储的执行期上下文对象的集合,这个集合呈链式连接,我们把这种链式链接叫做作用域链。
eg:
function a(){
function b(){
function c(){
}
c();
}
b();
}
a();
// 定义 defined 执行 doing
a defined --> 0:GO
a doing --> 0:aAO,
1:GO 函数a执行后才能执行函数b;
b defined --> 0:GO
b doing --> 0:bAO,
1:aAO,
2:GO 函数b执行后才能执行函数c;
c defined --> 0:GO
c doing --> 0:cAO,
1:bAO,
2.aAO,
3:GO