首頁 > web前端 > js教程 > 為什麼在 JavaScript 中使用 `var that = this;`?

為什麼在 JavaScript 中使用 `var that = this;`?

Linda Hamilton
發布: 2024-12-18 02:30:10
原創
461 人瀏覽過

Why Use `var that = this;` in JavaScript?

理解「var that = this;」在 JavaScript 中

在 JavaScript 中,'this' 關鍵字代表當前物件。將“this”分配給“var that”允許開發人員維護對原始物件引用的引用,即使在“this”可能更改的巢狀函數中,也可以稍後存取該引用。

請考慮以下程式碼片段:

function Somefunction(){
   var that = this; 
   ... 
}
登入後複製

這裡,將「this」指派給「that」可確保在「Somefunction」範圍內,「that」總是引用原始物件實例。這在使用閉包或事件處理程序時很有用,其中“this”引用在調用巢狀函數後可能會發生變化。

為了說明這一點,假設您有一個監聽元素上的“click”事件的函數:

var colours = ['red', 'green', 'blue'];
document.getElementById('element').addEventListener('click', function() {
    // this is a reference to the element clicked on

    var that = this;

    colours.forEach(function() {
        // this is undefined
        // that is a reference to the element clicked on
    });
});
登入後複製

在事件處理程序中,“this”指的是被單擊的元素,但在內部「forEach」函數中,「this」變得未定義。透過將其別名為“that”,您仍然可以存取對單擊元素的原始引用。

總之,「var that = this;」確保維護對目前物件的一致引用,這使得它在「this」可以動態變更的事件處理或關閉場景中特別有用。但是,為了清楚起見,請考慮使用更具描述性的別名,例如“clickedEl”或“c​​urrentElement”,以使程式碼意圖更加明顯。

以上是為什麼在 JavaScript 中使用 `var that = this;`?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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