當前位置:
首頁 > 知識 > 簡單實例演示js中this/applay/call用法

簡單實例演示js中this/applay/call用法


點擊上方藍字關注「小鄭搞碼事」,每天都能學到知識,搞懂一個問題!

關於this指向問題,是我們經常遇到的,不太注意,又是特別重要的一個知識點,下面我們花點時間來簡略總結一下。簡單實例演示js中this/applay/call用法


一、關於this

this是指調用當前函數的對象

簡單實例演示js中this/applay/call用法

doSomething在全局調用,相當於window.doSomething();所以裡面的this指向window對象,this.test就是window.test="Tony";

下面舉兩種閉包的例子來進一步看一下:

簡單實例演示js中this/applay/call用法

這個很好理解,object調用doSomething函數的時候返回的是一個函數,然後這個函數在全局環境下執行,裡面的this自然指向window對象。

下面在把上面那個例子變一下:

簡單實例演示js中this/applay/call用法

當object調用doSomething函數時,doSomething函數里的this按定義指向的就是調用它的函數object,通過指針賦值,傳到了返回的函數中,所以,最後abc.name的值就是My object。

順便說一聲,這種問題,箭頭函數已經很好的解決了,可能參考之前我寫的一篇文章。


二、關於call

改變this所指的對象

簡單實例演示js中this/applay/call用法

第一個調用,並沒有指明要改變指向的對象,所以在全局還是指向window,結果就是「Tony」。

第二個調用,改變this指向myobj對象,所以this.test就是TOM。

簡單實例演示js中this/applay/call用法

有了上面那個例子為基礎,理解這個例子也就很容易了,只需要注意調用call方法時是如何傳參數的。


三、關於Apply

與Call相比它的調用參數的形式不一樣

簡單實例演示js中this/applay/call用法

兩者的作用是一致的,唯一區別是apply接受的是數組參數,call接受的是連續參數。


寫在最後的總結:

以上是小鄭子個人理解,如有不對之處,歡迎補充和留言。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 小鄭搞碼事 的精彩文章:

想了解函數引用和函數調用本質區別的,這篇文章不要錯過
關於js中的arguments,只需要搞懂這三點

TAG:小鄭搞碼事 |

您可能感興趣

如何利用wpscan入侵WordPress-實例演示
Magic Leap公布「Drive」和「Measure」兩個新Demo演示內容
Twilio與Magic Leap首次現場演示Avatar Chat視頻聊天應用
一覽Magic Leap One社交VR應用「Avatar Chat」演示效果
《老滾5》Nvidia Freestyle模式演示 濾鏡下美炸天
村上隆上身演示!UNIQLO x Doraemon x Murakami神秘單品曝光!
一次詳細的Kerberoast攻擊演示
微軟演示了Alexa和Cortana的集成
AMD全新演示demo!Radeon FreeSync視覺體驗令人驚嘆
育碧全新IP遊戲?《Roller Champions》演示視頻曝光
Facebook、谷歌、Big Switch在開放硬體上演示網路操作系統
Facebook F8演示4款Quest首發內容
Facebook演示了VR頭顯原型機Half Dome的新特徵
ACRONYM x Nike正式登場發布!更有visvim大神上身演示!
微軟推Win10演示應用,盡現Surface Hub
國產遊戲《惡果之地》Switch版演示 Roguelite激爽射擊
PS4 RemotePlay實機演示 iPhone串流暢玩PS4獨佔
中國5G競速:first call僅僅是開始,eMBB演示見真章
還挺方便,微軟演示 Alexa和Cortana 的整合
AMD展示FreeSync 2 HDR測試工具「Oasis」的演示Demo