变量作用域
是程序源代码中定义这个变量的区域
作用域链
是存储当前作用域可访问的变量的栈
三种代码运行环境:global function eval
执行环境 =》 变量对象 作用域链 this
AO/VO =》 变量 函数声明 函数形参
函数被调用时
1.创建阶段(函数被调用,但还没开始执行函数代码)
(1)会创建作用域链
(2)创建活动对象(AO)
初始化arguments--作为活动对象的内部对象(callee,length,函数参数值)
对代码进行预读(声明提前--变量,函数声明) //函数表达式和没有var的变量不会被保存在AO中
(3)设置this的值
2.执行阶段
执行代码
是程序源代码中定义这个变量的区域
作用域链
是存储当前作用域可访问的变量的栈
三种代码运行环境:global function eval
执行环境 =》 变量对象 作用域链 this
AO/VO =》 变量 函数声明 函数形参
函数被调用时
1.创建阶段(函数被调用,但还没开始执行函数代码)
(1)会创建作用域链
(2)创建活动对象(AO)
初始化arguments--作为活动对象的内部对象(callee,length,函数参数值)
对代码进行预读(声明提前--变量,函数声明) //函数表达式和没有var的变量不会被保存在AO中
(3)设置this的值
2.执行阶段
执行代码