function getItem(id){
var msg = 'msg'; // 变量的声明
ww = 'global'; // 变量赋值
function search(){ // 函数的申明
alert('hello');
}
var foo = function(){ // 函数表达式
alert('world');
};
}
getItem(1);
函数在运行前,生成Active Object(活动对象 AO).
1.分析函数的形参,形成AO的属性,值为undefined,如 AO={id:undefined}
2.接收形参的值,更新AO的属性值,AO={id:1}
3.分析变量声明,如 var msg
如果AO上没有msg属性,则添加AO属性,值是undfined
如果AO上已有msg属性,则不做处理
4.分析函数声明,如 function search(){},把函数付给AO.serach属性,
如果此前有了search属性,则会覆盖之前的search属性,
转载于:https://my.oschina.net/helloworldcoding/blog/793901