JavaScript之 this指向(速记)

103 阅读1分钟

判断this指向

根据优先级判断函数在某个调用位置应用的是哪条规则。按照下面的顺序进行判断:

  1. 函数是否在new中调用(new绑定)?

如果是的话this绑定的是新创建的对象

 var fun = new foo() 
  1. 函数是否通过call、apply(显示绑定)? 如果是的话this绑定的是指定的
var fun = foo.call(obj)
  1. 函数是否在某个上下文对象中调用(隐式变量)? 如果是的话,this绑定的是那个上下文对象
var bar = obj.foo()

4.如果使用默认绑定。如果在严格模式下,就绑定到undefined,否则绑定到全局对象

var bar = foo()

5.绑定例外

在某些场景下,出现绑定的规则 但是实际上是默认绑定规则