判断this

Posted by 生活的日常 on July 6, 2016
  • 函数是否在new中调用new绑定?如果是的话,this 绑定的是新创建的对象。var bar = new foo();
  • 函数是否通过call apply 或者硬绑定调用?如果是的话,this绑定的是指定的对象。 var bar = foo.call(obj);
  • 函数是否在某个上下文对象中调用?如果是的话,this绑定的是那个上下文。var bar = obj.foo();
  • 如果都不是的话,使用默认绑定。如果在严格模式下,就绑定到underfined,否则绑定到全局对象。 var bar = foo();