例子:
function t(age){
var age = 5;
console.log(age);
}
t(99);//5;
分析
一共四步:
1 任何参数执行创建AO(Active Object)对象
t.AO = {}
2 将函数的参数作为AO的属性写入
t.AO = {age:99}
3 分析函数内部var
因为AO对象内部已经有了age所以舍弃内部var的声明,注意:舍去的只是声明,不舍去赋值
4 分析函数内部函数
没有内部函数
分析完毕此时t.AO = {age:99}
------------------------以上只是分析而已以下是执行-----------------------------
开始执行:
age = 5;
所以t.AO.age = 5;
所以t(99)答案为5;
原文:http://www.cnblogs.com/niuniuniu/p/6385638.html