理解「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”或“currentElement”,以使程式碼意圖更加明顯。
以上是為什麼在 JavaScript 中使用 `var that = this;`?的詳細內容。更多資訊請關注PHP中文網其他相關文章!