理解「var that = this;」的目的在JavaScript 中
使用JavaScript 時,您可能會遇到包含語句「var that = this;」的程式碼片段。此構造在保留巢狀函數中「this」的上下文方面發揮著至關重要的作用,特別是在事件處理程序中。
在 JavaScript 中,「this」關鍵字表示當前上下文或擁有其所使用程式碼的物件但是,當一個函數在另一個函數內呼叫時,「this」的值會發生變化。這可能會導致意外的行為,尤其是在事件處理程序駐留在回呼中的事件驅動程式碼中。
將「this」分配給「that」的目的是在物件因丟失而丟失之前捕獲該物件的當前上下文。範圍的變化。透過將“this”別名為“that”,您可以確保即使在巢狀函數中也可以存取“this”的原始值。
考慮以下範例:
$('#element').click(function() { // this is a reference to the element clicked on var that = this; $('.elements').each(function() { // this is a reference to the current element in the loop // that is still a reference to the element clicked on }); });
在此程式碼中,事件處理函數可以存取透過「this」關鍵字點擊的元素。但是,在巢狀函數 (each()) 中,「this」的值會引用迴圈中的目前元素。透過在外部函數中將“this”捕獲為“that”,您仍然可以存取最初點擊的元素。
為了提高可讀性,建議使用「that」以外的別名。在上面的範例中,像「clickedEl」這樣更具描述性的別名將使變數所指的內容更加清晰。
總之,「var that = this;」是 JavaScript 中一種常用技術,用於在不同範圍內保留「this」的值。即使呼叫巢狀函數,它也確保維持物件的原始上下文。
以上是為什麼要使用'var that = this;”在 JavaScript 中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!