今天看了你不知道的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();
這四步真的很重要,在平時我們都是可以用的。