函数预编译AO对象

函数预编译AO(Activation Object)对象

carbon (2).png

AO对象加载顺序

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]
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容