函数的预编译

    函数调用时 怎么运行代码的

    预编译 

    1.分析代码是否正确  

    2.隐式操作==>预编译:函数调用了以后 在运行代码之前

    形实函运

    2.1函数每次调用都会生成一个AO对象:执行期上下文对象

    2.2给AO对象添加成员:函数内部的局部变量和形参变量名  作为AO对象的属性名

     AO:{a:undefined}

     2.3把传入的实参赋值给AO对象的属性

      AO:{a:100}

     2.4局部函数声明,形参赋值  把局部函数的名字让AO对象也有一个一样的成员名,把函数体赋值给这个属性

        AO:{a:100,fn:function fn(){}} 形参和局部变量一样的时候 不影响

        function fm(a) {

             var a=20

        function fn(){}

         }

         var b=100

         fm()

3.运行代码:预编译过的就不在运行

全局作用域的预编译

 GO对象的成员全部浅拷贝给环境对象window

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值