js作用域
js 代码自上而下执行;
js 代码在整体运行分为:
1.语法分析期
2.运行期
自上而下执行之前,先有一个“语法分析过程”
分析三样东西。
1:先分析参数
2: 再分析变量声明
3: 分析函数变量
一个函数能使用的局部变量,就从上面的3步分析而来
具体步骤:
0:函数运行前的一瞬间,生成Active Object(活动对象),下称AO
1:把函数的参数,形成AO的属性,值全是Undefined
1.1 函数声明的参数,形成AO的属性,值全是Undefined,
1.2接受实参,形成AO相应的值
2:分析变量声明:如var age
如果AO上没有age属性,则添加AO属性,值是Undefined
如果AO上已有,则不做影响
3.分析函数声明 function foo(){}
则把函数赋给 AO.foo属性
注:如果之前foo属性已存在,则被覆盖。