- this 绑定的优先级
this 存在多个使用场景,那么多个场景同时出现的时候,this 到底应该如何指向呢。这里存在一个优先级的概念,this 根据优先级来确定指向。优先级:new 绑定 > 显示绑定 > 隐式绑定 > 默认绑定
所以this的判断顺序:
new绑定: 函数是否在new中调用?如果是的话,this绑定的是新创建的对象。
2.显示绑定: 函数是否通过call、apply、bind调用?如果是的话,this绑定的是指定的对象。
3.隐式绑定:函数是否在某个上下文对象中调用?如果是的话,this绑定的是那个上下文对象。
4:如果都不是的话,使用默认绑定,如果在严格模式下,绑定的是undefined,否则绑定的是全局对象。箭头函数的this
箭头函数是根据其声明的地方绑定this的,箭头函数的this绑定无法被call、apply、bind修改,且箭头函数因为没有构造函数constructor,所以也不可以使用new调用。