一、AO的初始化步骤
1.创建一个AO对象 AO{}
2.将函数内所有的 形参 和 变量声明的名 存储到 AO对象中,value为undefined
3.将形参和实参进行相统一
4.将所有的函数声明的函数名作为AO对象中的key,函数体内容为value存储到AO对象中
二、AO再执行 (赋值)
三、举例分析
function test(a,b){
console.log(a);//ƒ a(){};
var c=123;
console.log(c);//123
function a(){};
console.log(b);//3
function c(){};
var b=function cd(){}
console.log(b);//ƒ cd(){}
}
test(1,3);
分析:
1:
AO{ }
2:
AO{
a:undefined,
b:undefined,
c:undefined,
}
3:
AO{
a:1,
b:3,
c:undefined,
}
4:
AO{
a:function a(){},
b:3,
c:function c(){},
}
5:执行---赋值
AO{
a:function a(){},
b:function cd(){},
c:123,
}
四、GO对象同AO对象