作用域
作用域供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:GO15 //a doning a.[[scope]] --> 0:aAO16 // 1:GO17 18 //b defined b.[[scope]] --> 0:aAO19 // 1:GO20 //b doning b.[[scope]] --> 0:bAO21 // 1:aAO22 // 2:GO23 24 //c defined c.[[scope]] --> 0:bAO25 // 1:aAO26 // 2:GO27 28 //c doing c.[[scope]] --> 0:cAO29 // 1:bAO30 // 2:aAO31 // 3:GO