函数预编译AO对象

作者: 丘比特爱上猫 | 来源:发表于2019-05-28 21:35 被阅读1次

    函数预编译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]

    相关文章

      网友评论

        本文标题:函数预编译AO对象

        本文链接:https://www.haomeiwen.com/subject/jubjtctx.html