javasciprt 作用域

作用域

作用域供javascript引擎存取,[[scope]]指作用域,其中存储运行了执行期上下文的集合,称为作用域链

执行期上下文

当函数执行时,会创建一个执行期上下文的内部对象(AO),函数每次执行对应的执行期上下文都是独一无二的,所以多次调用会导致一个函数创建多个执行期上下文,当函数执行完毕,执行期上下文被销毁

 1 function a()
 2     {
 3         function b()
 4         {
 5             function c()
 6             {
 7 
 8             }
 9             c();
10         }
11         b();
12     }
13     a();
14     //a defined a.[[scope]]  --> 0:GO
15     //a doning  a.[[scope]]  --> 0:aAO
16     //                           1:GO
17     
18     //b defined b.[[scope]]  --> 0:aAO
19     //                           1:GO
20     //b doning  b.[[scope]]  --> 0:bAO
21     //                           1:aAO
22     //                           2:GO
23 
24     //c defined c.[[scope]]  --> 0:bAO
25     //                           1:aAO
26     //                           2:GO
27 
28     //c doing   c.[[scope]]  --> 0:cAO
29     //                           1:bAO
30     //                           2:aAO
31     //                           3:GO
原文地址:https://www.cnblogs.com/FashionDoo/p/10414092.html