函数创建时:
1.创建堆内存空间,存储函数代码字符串和键值对。
2.初始化函数作用域,[[scope]] = 函数所在上下文中的变量对象VO/AO。
函数执行时:
1.创建一个新的EC执行上下文,压到ECStack中执行。
2.初始化this指向。
3.初始化作用域链,[[ScopeChain]] = <AO,VO>。
4.创建函数活动变量对象 AO,用来储存变量。(初始化实参对象arguments => 形参赋值=> 执行代码)
1.创建堆内存空间,存储函数代码字符串和键值对。
2.初始化函数作用域,[[scope]] = 函数所在上下文中的变量对象VO/AO。
1.创建一个新的EC执行上下文,压到ECStack中执行。
2.初始化this指向。
3.初始化作用域链,[[ScopeChain]] = <AO,VO>。
4.创建函数活动变量对象 AO,用来储存变量。(初始化实参对象arguments => 形参赋值=> 执行代码)