JS中this的指向問(wèn)題

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ò)誤歡迎指出?。。。。。?!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 為什么要學(xué)習(xí)this?如果你學(xué)過(guò)面向?qū)ο缶幊?,那你肯定知道干什么用的,如果你沒(méi)有學(xué)過(guò),那么暫時(shí)可以不用看這篇文章,...
    alokka閱讀 229評(píng)論 0 0
  • this最終指向的是調(diào)用它的那個(gè)對(duì)象 1、在普通函數(shù)里的this指向 例子1: 運(yùn)行結(jié)果: 這里的this最終指向...
    洛禾sunshime閱讀 333評(píng)論 0 0
  • 剛剛學(xué)習(xí)js的朋友可能和我一樣,看到代碼中的this總是一臉懵逼,不知道this到底指向誰(shuí)。經(jīng)過(guò)一段時(shí)間的了解,我...
    爆裂邊緣閱讀 596評(píng)論 0 5
  • 眾所周知,this的指向問(wèn)題一直是JS中比較難的問(wèn)題,很多時(shí)候我們都搞不清this到底指向的誰(shuí)。今天,我就來(lái)給大家...
    smalll閱讀 288評(píng)論 0 2
  • 在js中從上下文角度看this指向 話不多說(shuō)先放碼 請(qǐng)先寫(xiě)出各個(gè)函數(shù)調(diào)用之后的console輸出 嗯。。。最后我會(huì)...
    當(dāng)時(shí)_尋常閱讀 238評(píng)論 0 0

友情鏈接更多精彩內(nèi)容