JavaScript预编译

时间:2019-06-12
本文章向大家介绍JavaScript预编译,主要包括JavaScript预编译使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1 var num = 100;
2         function fun(num){
3             console.log(num);
4         }
5         fun(5);

以这段代码为例分析函数的预编译

  开始一步步的分析

  1.分析GO对象,首先会生成保存全局变量的全局对象。

    1.1生成自己的GO对象

    GO={}

    1.2分析GO对象中的变量声明

    GO={

      num:undefined

    }

    1.3分析GO对象中的函数声明   

    GO={

      num:undefined

      fun:function

    }

  2.逐行执行

    在第一行产生了赋值:

    GO={

      num:100

      fun:function

    }

    到第五行函数调用,在调用的函数前的一瞬间生成了一个AO对象

  3.生成AO对象

    AO={}

    3.1分析参数

      AO={

        num:5

      }

    3.2分析变量声明  没有略过

    3.2分析函数声明  没有略过

    最后的AO对象为

    AO={

      num:5

    }

  然后开始逐行执行

知识点汇总:

 1.函数在执行前的一瞬间,会生成一个AO(active object)对象
 2.分析参数,形参作为AO对象的属性名,实参作为AO对象的属性值
 3.分析var变量声明,变量名作为AO对象的属性名,值为undefined,如果遇到同名的,不去做任何改变
 4.分析函数声明,函数名作为AO对象的属性名,值为函数体,如果遇到同名的,直接覆盖

原文地址:https://www.cnblogs.com/wangzheng98/p/11009800.html