„Ausführungsumgebung“, wenn Sie diesen Begriff hören, könnten Sie verwirrt sein! In vielen Fachliteratur wird es auch als „Ausführungskontext“ bezeichnet, aber eigentlich ist es dasselbe. Bücher und Materialien erklären es oft sehr kompliziert. Dies ist in JS schwer zu verstehen. Keine Sorge, dieser Artikel versucht, dieses Konzept in einfacher und leichter Sprache zu erklären.
Schauen wir uns zunächst ein Beispiel an:
Wir geben in die Browserkonsole ein:
var a=1;console.log(window.a);console.log(a);
Das Ergebnis ist Ausgabe 1, offensichtlich ist die Variable a eine Eigenschaft des Fensterobjekts.
Dann möchte ich Sie fragen: Was ist die Ausführungsumgebung der Variablen a?
Ich glaube, die Antwort fällt Ihnen nicht schwer: Es ist das Fensterobjekt! Tatsächlich haben Sie Recht. Das Fensterobjekt ist die Ausführungsumgebung der Variablen a. Es wird als globale Ausführungsumgebung bezeichnet, da es die am weitesten entfernte Ausführungsumgebung ist. Hier ist a standardmäßig in der globalen Ausführungsumgebung definiert, sodass a und window.a identisch sind.
Sehen wir uns das nächste Beispiel an:
function output(){ var a=1; console.log(a); }
In diesem Beispiel wird a innerhalb der Funktion definiert, dann ist die Ausführungsumgebung von a die Funktionsausführungsumgebung (Ausgabe).
Wenn Sie im Fenster Folgendes eingeben:
console.log(a);
, wird ein Fehler gemeldet, da a nur in der Funktionsausgabe sichtbar ist.
Aber wenn Sie Folgendes eingeben:
console.log(output);
, wird die Funktion normal angezeigt, da die Ausführungsumgebung der Funktionsausgabe ein Fenster ist und sie natürlich im Fenster angezeigt werden kann!
Wir wissen, dass sich die Ausgabefunktion in der Fensterumgebung befindet. Wenn das Programm die Ausgabefunktion ausführt, sollten Sie es erraten haben:
Die Fensterumgebung übergibt die Kontrolle an die Ausgabefunktionsumgebung und die Ausgabeumgebung wird zum Home-Feld.
Was passiert eigentlich hinter den Kulissen?
In JS gibt es etwas, das als Ausführungsumgebungsstapel oder Ausführungskontextstapel bezeichnet wird. Wenn ich nicht weiß, was der Stapel ist, sollte ich die Datenstruktur ausfüllen.
Genau wie ein Stapel von Kisten wird die globale Ausführungsumgebung unten im Ausführungsumgebungsstapel platziert. Bei der Ausführung zur Ausgabefunktion wird die Ausführungsumgebung dieser Funktion ebenfalls in eine Box gepackt und über der globalen Ausführungsumgebung „gestapelt“. Wenn ich weiterhin andere Funktionen in der globalen Umgebung ausführen möchte, beispielsweise etwas aus der unteren Box abrufen möchte, muss zuerst die Ausgabefunktion ausgeführt werden. Im übertragenen Sinne ist es so, als würde man die obere Kiste wegnehmen, bevor man die untere Kiste bewegt.
Verwandte Empfehlungen:
Wie man Typen, Parameter und Ausführungsumgebungen in JavaScript versteht
Detaillierte Erläuterung der Ausführungsumgebung und Bereichsinstanzen
Javascript-Bereichskette und Ausführungsumgebung
Das obige ist der detaillierte Inhalt vonEinführung in Beispiele für JS-Ausführungsumgebungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!