函数预编译AO对象
2019-05-28 本文已影响1人
丘比特爱上猫
函数预编译AO(Activation Object)对象
carbon (2).pngAO对象加载顺序
1. 创建一个AO对象AO{}
AO{
}
2.将函数内的所有参数和变量声明(的名)储存到AO对象中,value为undefined
AO{
a: undefined,
b: undefined,
c: undefined,
}
3. 将形参和实参进行统一
AO{
a: 1,
b: 2,
c: undefined,
}
4. 将多有的函数声明的函数名作为AO对象中的key,函数整体内容为value储存到ao对象中
AO{
a: function a(){},
b: 2,
c: undefined,
}
5.以上初始化完成,函数内部代码执行
- 打印 a // [Function: a]
- c = 3
- 打印c // 3
- 打印b // 2
- b = function c(){}
- 打印b // [Function: c]