执行上下文

59 阅读1分钟

执行上下文是一个虚拟对象。分为全局执行上下文和函数执行上下文。

1.全局执行上下文

步骤:

  • 在执行全局代码前,将window对象确定为全局上下文
  • 然后对全局数据进行预处理,包括三个。

预处理:

1.变量提升:var 定义的全局变量=undefined,添加为window的属性
2.函数提升:声明式函数提升,添加为window的方法,优先于变量提升
3.this指向:将this指向为window

2.函数执行上下文

步骤:

  • 执行函数体之前,创建函数执行上下文对象
  • 然后对局部数据进行预处理

预处理

1.形参变量:将实参赋值给形参变量,添加为执行上下文的属性
2.arguments:将实参列表赋值给arguments,添加为执行上下文属性
3.变量提升:var 定义的全局变量=undefined,添加为执行上下文的属性
4.函数提升:声明式函数提升,添加为执行上下文的方法,优先于变量提升
5.this指向:将this指向为调用函数的对象