js this绑定规则(简单易懂)

184 阅读1分钟
当一个函数被调用的时候,会创建一个活动记录(这个也是前面提到的执行上下文),这个记录会包含函数在哪里被调用,函数的调用方式,传入参数等各种信息,this就是这个记录的一个属性。
 this指向的的四大规则:
 1.由new调用?绑定到新创建的对象

这里写图片描述 并没有取到全局变量a的值1,输出对象b内部的的属性值2,此处this绑定到新对象b

 2.由call或者apply(或者bind)调用?绑定到指定对象

这里写图片描述

3. 由上下文对象调用?绑定到那个上下文对象

这里写图片描述

4.默认:在strict模式下绑定undefined,否则绑定到全局对象

普通模式下: 这里写图片描述 严格模式下: 这里写图片描述

优先级从上至下排列,所以在实际开发过程中也可以对照此规则进行判断