概念
词法分析:
一个函数能使用的局部变量,就从下面面的三步分析而来。
第一步:先分析参数
第二步:再分析变量声明
第三步:再分析函数声明
具体步骤:
0:
函数运行前的一瞬间,生成Active Object(活动对象),下称AO
1:
1.1 函数声明的参数形成AO的属性,值全是undefined
1.2 接收实参,形成AO相应属性的值。
2:
分析变量声明声明声明,var age;
如果AO上还没有age属性,则添加AO属性,值是undefined
如果AO上已有age属性,则不做任何变化。
3:
分析函数声明,如:function foo(){}
则把函数赋给AO.foo属性
注:如果此前有foo属性,则会被无情的覆盖。
示例1
function t2(age){
var age = 99;
alert(age);
}
t2();