首頁 > web前端 > js教程 > 為什麼 `$(this)` 在 jQuery 和 ES6 箭頭函數中表現不佳?

為什麼 `$(this)` 在 jQuery 和 ES6 箭頭函數中表現不佳?

Barbara Streisand
發布: 2024-12-13 10:11:17
原創
204 人瀏覽過

Why Does `$(this)` Misbehave with jQuery and ES6 Arrow Functions?

將jQuery $(this) 與ES6 箭頭函數一起使用:詞法This 綁定

當將jQuery 的$this(this() 與ES6 箭頭函數一起使用時,開發人員可能會遇到這樣的問題:使用self = this 將$(this)轉換為 ES5 風格的閉包。此行為是由於箭頭函數的詞法綁定性質所造成的。

問題:

以下程式碼示範了這個問題:

何時使用箭頭函數取代:

$(this) 轉換為ES5風格的閉包,導致意外行為。

解:

這個問題是ES6箭頭函數的固有特徵,無法使用Traceur繞過。要解決此問題,必須避免使用它來存取單擊的元素。相反,可以使用event.currentTarget 屬性:

jQuery 專門提供了event.currentTarget 來應對由於外部因素導致this 綁定可能不明確的情況,例如回調函數被綁定到另一個上下文通過.bind().

以上是為什麼 `$(this)` 在 jQuery 和 ES6 箭頭函數中表現不佳?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板