预编译

207 阅读1分钟

预编译执行过程

1. 创建AO对象(Activation Object)(执行期上下文)
2. 找形参和变量声明,将变量和形参作为AO属性名,值为undefined
3 . 将实参值和形参值统一
4 . 在函数体里面找函数声明,值赋予函数体


例:
        function fu(a){
            console.log(a); //function a() {}
            
            var a = 123;
            
            console.log(a); //123
            
            function a() {}
            
            console.log(a); //123
            
            var b = function() {}
            
            console.log(b); // function() {}
            
            function d() {}
        }
        fn(1);


    首先创建AO对象
    AO{
        a:undefined,
        b:undefined,
    }
    
     AO{
        a:1,
        b:undefined,
        d:function d() {}
    }
    
    AO{
        a:function a(){},
        b:undefined,
        d:function d() {}
    }