Heim > Web-Frontend > js-Tutorial > Warum „var that = this;' in verschachtelten JavaScript-Funktionen verwenden?

Warum „var that = this;' in verschachtelten JavaScript-Funktionen verwenden?

Linda Hamilton
Freigeben: 2024-12-05 05:50:10
Original
294 Leute haben es durchsucht

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

Zugriff darauf in verschachtelten Funktionen: Enträtselung von var that = this;

In JavaScript ist es entscheidend, den Umfang und Wert davon zu verstehen. Betrachten Sie den folgenden Codeausschnitt:

function Somefunction() {
  var that = this;
  ...
}
Nach dem Login kopieren

Warum wird das deklariert und ihm der Wert zugewiesen?

Um den Zweck dieser Technik zu verstehen, stellen wir uns ein Szenario vor:

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

  colours.forEach(function() {
    // this is undefined within this inner function
    // that still refers to the clicked element
  });
});
Nach dem Login kopieren

Dies innerhalb des forEach-Rückrufs bezieht sich auf das aktuelle Array-Element, nicht auf das angeklickte Element. Dadurch bleibt jedoch ein Verweis auf das angeklickte Element erhalten.

Wenn Sie in verschachtelte Funktionen wechseln, kann sich der Umfang ändern, was den Zugriff auf den ursprünglichen Wert erschwert. Durch Aliasing von this auf that wird sichergestellt, dass der ursprüngliche Wert weiterhin zugänglich ist.

Beachten Sie, dass die Verwendung als Alias ​​nicht immer optimal ist. Es ist besser, einen aussagekräftigeren Alias ​​zu verwenden, der klar angibt, worauf er sich bezieht, insbesondere bei komplexen Funktionen.

Das obige ist der detaillierte Inhalt vonWarum „var that = this;' in verschachtelten JavaScript-Funktionen verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage