执行上下文
执行上下文(Execution Context): 函数执行前进行的准备工作(也称执行上下文环境)
运行JavaScript代码时,当代码执行进入一个环境时,就会为该环境创建一个执行上下文,
它会在你运行代码前做一些准备工作,如确定作用域,创建局部变量对象等。
参考链接
JS执行环境
- 全局环境
- 函数环境(局部环境)
js执行上下文类型
全局执行上下文
在执行全局代码的时候将window确定为全局执行上下文
对全集数据进行预处理
- var定义的全局变量==>undefined,并添加为window的属性
- function声明的全局函数 ==> 赋值(fun),添加为window的方法
- this==>赋值为window
1
2
3
4
5
6
7
8console.log(a1 + '/////' + window.a1)
a2()
console.log(this)
var a1 = 3
function a2() {
console.log('a2')
}
console.log(a1);
函数执行上下文(局部执行上下文)
在调用函数,准备执行函数之前,创建对的函数执行上下文
对数据进行处理
- 行参变量==>赋值(实参)=>添加为执行上下文的属性
- arguments==>赋值(实参列表),添加为执行上下文属性
- var定义的局部变量==>undefined,添加为上下执行文属性
- function声明的函数赋值(fun),添加为执行上下文方法
- this==>赋值(调用函数的对象)
1
2
3
4
5
6
7
8
9
10
11
12
13
14function fn(a1) {
console.log(a1)
console.log(a2)
console.log(arguments);
console.log(fnn);
console.log(this);
fnn()
var a2 = 3
function fnn() {
console.log('a3');
}
}
fn(2, 3)