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

    函数预编译AO(Activation Object)对象 AO对象加载顺序 1. 创建一个AO对象AO{} 2.将...

  • JS预编译——AO对象、GO对象

    AO:函数预编译 打印结果 预编译流程1.计算机执行函数前,会创建一个AO对象AO{} 2.将函数内所有的形参和变...

  • *函数作用域原理[JavaScript_006]

    作用域 函数的属性 执行期上下文(可以理解为AO) 详解:在执行前(预编译期间),产生的内部对象AO;完成函数执行...

  • 预编译阶段变量函数的提升 和 多个函数的执行顺序

    下面这道题讲解变量和函数的提升 预编译js的变量对象 AO对象 让js引擎去访问1、创建AO对象2、找形参和变量的...

  • 2021-08-27

    1、 2、 实际上是因为JS代码在执行之前会有预编译阶段,在预编译函数时会创建AO活动对象(实际就是说明在函数体内...

  • 函数预编译

    流程 函数被调用时,为当前函数产生AO对象 查找形参和变量声明作为AO对象的属性名,值为undifiend 使用实...

  • 预编译笔记

    AO activation object (活跃对象,函数上下文)AO={1.寻找函数的形参和变量声明a: u...

  • javascript基础学习笔记1

    预编译 执行AO对象(Activation Object) GO全局对象(Gloable Object) 找形参和...

  • javascript中对this的理解

    //1.函数预编译过程中 this --> window //AO this: window function t...

  • 深入之作用域及作用域链

    JS运行三部曲1、语法分析2、预编译3、解析执行预编译: 对于函数,执行上下文四部曲:· 1、创建AO对象,· 2...

网友评论

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

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