Heim >Web-Frontend >js-Tutorial >Warum „var self = this' in JavaScript verwenden?

Warum „var self = this' in JavaScript verwenden?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-13 17:56:10747Durchsuche

Why Use `var self = this` in JavaScript?

Verstehen des JavaScript-Idioms: var self = this

In JavaScript können Sie in bestimmten Szenarien auf das Idiom „var self = this“ stoßen . Um seinen Zweck zu verstehen, betrachten wir das Beispiel aus der WebKit HTML 5 SQL Storage Notes-Demo:

function Note() {
  var self = this;

  // ...
}

Kontext beibehalten

In diesem Beispiel ist „selbst“. Wird verwendet, um einen Verweis auf den ursprünglichen „diesen“ Kontext beizubehalten, selbst wenn sich der Kontext innerhalb verschachtelter Funktionen ändert. Event-Handler verwenden diese Technik häufig, insbesondere bei Abschlüssen.

Durch die Zuweisung von „this“ zu „self“ können sie beim Aufruf innerer Funktionen weiterhin auf den ursprünglichen „this“-Kontext zugreifen, der für den Zugriff auf die Instanz von entscheidender Bedeutung ist Eigenschaften und Methoden.

Alternative Benennung

Es ist erwähnenswert, dass der Name „self“ lediglich eine Konvention ist. Alternative Namen wie „das“ sind gleichermaßen gültig. Der Schlüssel besteht darin, eine Variable einzurichten, die die ursprüngliche „diese“-Referenz beibehält.

Funktionsbereich

In einem Kontext deklarierte Funktionen können auf Variablen und Funktionen zugreifen, die in diesem Bereich definiert sind oder in äußeren Bereichen. Dieses Prinzip gilt auch für verschachtelte Funktionen und Abschlüsse.

Beispiel

Betrachten Sie den folgenden Ereignisrückruf:

function MyConstructor(options) {
  let that = this;

  // ...

  document.addEventListener('click', (event) => {
    alert(that.someprop);
  });
}

In diesem Beispiel: ' that' behält den Kontext von 'MyConstructor' bei. Der Click-Event-Handler kann nun auf die Instanzeigenschaft „someprop“ des mit „MyConstructor“ erstellten Objekts zugreifen.

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

Stellungnahme:
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