1.當(dāng)一個(gè)函數(shù)在全局被調(diào)用時(shí),就相當(dāng)于是 window 在調(diào)用這個(gè)函數(shù),因此 this 指向 window

結(jié)果:

2.當(dāng)一個(gè)函數(shù)是對(duì)象中的一個(gè)屬性,通過(guò)對(duì)象調(diào)用這個(gè)方法時(shí),this 指向這個(gè)對(duì)象(誰(shuí)調(diào)用了這個(gè)函數(shù),this就指向誰(shuí))
例子1:

結(jié)果:

例子2:obj 對(duì)象中嵌套 obj2 對(duì)象

結(jié)果:

例子3:如果在全局中把對(duì)象中的一個(gè)函數(shù)賦值給了一個(gè)全局變量,則 this 指向 window

結(jié)果:

3.在使用構(gòu)造函數(shù)時(shí),如果在一個(gè)函數(shù)前面加上new關(guān)鍵字來(lái)調(diào)用,那么就會(huì)創(chuàng)建一個(gè)連接到該函數(shù)的prototype成員的新對(duì)象;如果被調(diào)用的函數(shù)沒(méi)有顯式的 return 表達(dá)式(僅限于返回對(duì)象),則隱式的會(huì)返回 this 對(duì)象 - 也就是新創(chuàng)建的對(duì)象。
注意:顯式的返回以下值:undefined, null, boolean, number等基礎(chǔ)類型,并不會(huì)代替 new 式調(diào)用的默認(rèn)行為。
? ? ? ? ? ? 但顯式返回以下值:{},[],RegExp, Date, Function,均會(huì)代替 new 調(diào)用的默認(rèn)返回值 this.
沒(méi)有return?

結(jié)果:

return null:

結(jié)果不變:

return 1:

結(jié)果不變:

return {}:

結(jié)果為undefine:

return [ ]:

結(jié)果為undefine:

4.使用 call 和 apply 改變 this 指向(指向你傳進(jìn)去的對(duì)象):
?

結(jié)果:

5.匿名函數(shù)中this指向,匿名函數(shù)在全局作用域中執(zhí)行,具有全局性,所以匿名函數(shù)中的 this 指向 window:

結(jié)果:

最后:有錯(cuò)誤歡迎指出?。。。。。?!