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