当一个函数被调用的时候,会创建一个活动记录(这个也是前面提到的执行上下文),这个记录会包含函数在哪里被调用,函数的调用方式,传入参数等各种信息,this就是这个记录的一个属性。
this指向的的四大规则:
1.由new调用?绑定到新创建的对象
并没有取到全局变量a的值1,输出对象b内部的的属性值2,此处this绑定到新对象b
2.由call或者apply(或者bind)调用?绑定到指定对象
绑定到指定对象
3.由上下文对象调用?绑定到那个上下文对象
4.默认:在strict模式下绑定undefined,否则绑定到全局对象
普通模式下:
严格模式下:
优先级从上至下排列,所以在实际开发过程中也可以对照此规则进行判断