今天看了你不知道的javascript这本书,看到了一个我觉得很重要的点,判断this!
这里有四种方法判断this的指向,准确的说是四步顺序:
1.函数是否在new中调用?如果是的话this绑定的是新创建的对象
var bar = new foo();
2.函数是否通过call、apply或者硬绑定调用?如果是的话,this绑定的是指定的对象。
var bar = foo.call(obj);
3.函数是否在某个上下文对象中调用?如果是的话,this绑定的是那个上下文对象
var bar = obj.foo();
4.如果都不是的话,使用默认绑定,在严格模式下,就绑定到undefined,否则就绑定到全局对象。
var bar = foo();
这四步真的很重要,在平时我们都是可以用的。