Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie verhält sich der \'this\'-Zeiger in verschachtelten JavaScript-Funktionen?

Susan Sarandon
Freigeben: 2024-10-19 06:49:02
Original
333 Leute haben es durchsucht

How Does the

"this"-Zeigerverhalten in verschachtelten Javascript-Funktionen

Beim Definieren einer verschachtelten Funktion innerhalb einer Methode eines Objekts ist es wichtig zu verstehen, wie Der „this“-Zeiger funktioniert in diesem Kontext. Betrachten Sie den folgenden Codeausschnitt:

<code class="javascript">var std_obj = {
  options: { rows: 0, cols: 0 },
  activeEffect: "none",
  displayMe: function () {

    // "this" refers to std_obj
    if (this.activeEffect == "fade") { }

    var doSomeEffects = function () {

      // "this" refers to the window object
      if (this.activeEffect == "fade") { }

    }

    doSomeEffects();
  }
};

std_obj.displayMe();</code>
Nach dem Login kopieren

In diesem Szenario verweist der „this“-Zeiger auf das „window“-Objekt innerhalb der verschachtelten Funktion „doSomeEffects()“, entgegen der Erwartung, auf die er verweisen sollte das „std_obj“-Objekt. Um dieses Verhalten zu erklären, müssen wir uns mit der Natur des „this“-Zeigers von Javascript befassen.

In Javascript wird der „this“-Zeiger durch die Art und Weise bestimmt, wie Funktionen aufgerufen werden. Es gibt drei Hauptmethoden:

  • Methodenaufruf: someObject.someFunction(arg1, arg2) – „this“ wird „someObject“ zugewiesen.
  • Funktionsaufruf: someFunction.call(someObject, arg1, arg2) – „this“ wird „someObject“ zugewiesen.
  • Function Apply: someFunction.apply(someObject, [arg1, arg2]) – „this“ wird „someObject“ zugewiesen.

Im Szenario mit verschachtelten Funktionen wird die Funktion „doSomeEffects()“ aufgerufen, ohne das „this“-Objekt anzugeben. Folglich verweist der „this“-Zeiger standardmäßig auf das globale Objekt, typischerweise das „window“-Objekt. Um sicherzustellen, dass „this“ auf das gewünschte Objekt verweist, sollte die Methode „std_obj.displayMe()“ explizit den „this“-Zeiger für „doSomeEffects()“ setzen.

Durch das Verständnis der Prinzipien, die „this“ regeln, sollte "-Zeiger können Entwickler unerwartetes Verhalten verhindern und Code erstellen, der den Best Practices entspricht.

Das obige ist der detaillierte Inhalt vonWie verhält sich der \'this\'-Zeiger in verschachtelten JavaScript-Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!