Heim  >  Artikel  >  Web-Frontend  >  Bereichsketten und -abschlüsse in JavaScript

Bereichsketten und -abschlüsse in JavaScript

高洛峰
高洛峰Original
2016-11-26 13:11:001023Durchsuche

• Geltungsbereich
o Globaler Geltungsbereich
o Lokaler Geltungsbereich
• Geltungsbereichskette
• Ausführungskontext
• Aktives Objekt
• Abschluss
• Abschlusspaketoptimierung
Ein Konzept, das bisher noch nicht erlernt wurde, taucht in JavaScript auf – die Schließung. Was ist Schließung? Vom oberflächlichen Verständnis her handelt es sich um ein geschlossenes Paket, bezogen auf den Umfang. Bevor wir also über Schließungen sprechen, sprechen wir zunächst über den Umfang.
Bereich
Im Allgemeinen sind die in einem Programmcode verwendeten Variablen und Funktionen nicht immer verfügbar. Der Bereich, der ihre Verfügbarkeit einschränkt, ist der Bereich, der die Lokalität der Programmlogik verbessert Zuverlässigkeit des Programms und Reduzierung von Namenskonflikten.
Globaler Geltungsbereich
Objekte, auf die überall im Code zugegriffen werden kann, haben einen globalen Geltungsbereich. Die folgenden Situationen haben einen globalen Geltungsbereich:
1. Die äußerste Funktion und die außerhalb der äußeren Funktion definierten Variablen haben einen globalen Geltungsbereich. zum Beispiel:
[javascript]
1. var outSide="var external"
2. var name ="var inside"; function inSideFunction{
5. warning(outSide); //Correct
11. //Correct
12. inSideFunction() //Fehler

2. Variablen, die nicht für die direkte Zuweisung definiert sind, werden automatisch als globaler Gültigkeitsbereich deklariert, zum Beispiel:
[javascript] view plaincopyprint?
1. blogName="CSDN Li Da"
3. Alle Eigenschaften von Fensterobjekten haben einen globalen Bereich, zum Beispiel: Die integrierten Eigenschaften des Fensterobjekts haben alle einen globalen Bereich, wie z. B. window.name, window.location , window.top usw.
Lokaler Bereich
[javascript]
1. function outFunction(){
2 ="inside name";
3. function inFunction(){
4 .               warning(name); /Error
ist ein Objekt, einschließlich Funktionen. Funktionsobjekte verfügen wie andere Objekte über Eigenschaften, auf die über Code zugegriffen werden kann, sowie über eine Reihe interner Eigenschaften, auf die nur die JavaScript-Engine zugreifen kann. Eine der internen Eigenschaften ist der Bereich, der die Sammlung von Objekten im Bereich enthält, in dem die Funktion erstellt wurde, die sogenannte Bereichskette der Funktion, die bestimmt, auf welche Daten die Funktion zugreifen kann.
Wenn eine Funktion erstellt wird, wird ihre Bereichskette mit Datenobjekten gefüllt, auf die in dem Bereich zugegriffen werden kann, in dem die Funktion erstellt wurde. Beispiel: Funktion:
[javascript]
1. function add(num1,num2) {
2.

Wenn die Funktion add erstellt wird, wird ihre Bereichskette mit einem globalen Objekt gefüllt, das alle globalen Variablen enthält, wie in der Abbildung unten gezeigt (Hinweis: Das Bild zeigt nur einen Teil aller Variablen):



Es ist ersichtlich, dass die Bereichskette einer Funktion erstellt wird, wenn die Funktion erstellt wird.
Kontext ausführen
Der Umfang der Funktion add wird während der Ausführung verwendet, zum Beispiel:
[javascript]
1 var total = add(5,10); Wenn die Add-Funktion ausgeführt wird, erstellt JavaScript einen Execute-Kontext (Ausführungskontext), der alle von der Add-Funktion zur Laufzeit benötigten Informationen enthält. Der Ausführungskontext verfügt auch über eine eigene Bereichskette. Wenn die Funktion ausgeführt wird, initialisiert die JavaScript-Engine zunächst die Bereichskette des Ausführungskontexts aus der Bereichskette mithilfe der Add-Funktion.
Aktives Objekt
Dann erstellt die JavaScript-Engine ein aktives Objekt. Diese Werte werden in der Reihenfolge, in der sie in der Funktion erscheinen, in die Bereichskette kopiert - „Aktivierungsobjekt“, dieses Objekt enthält alle lokalen Variablen, Parameter und diese und andere Variablen während der Funktionslaufzeit. Dieses Objekt wird in das vordere Ende der Bereichskette verschoben, und wenn der Laufzeitkontext zerstört wird, ist es das aktive Objekt ebenfalls zerstört. Die neue Bereichskette ist wie folgt:

Bereichsketten und -abschlüsse in JavaScript Der Ausführungskontext ist ein dynamisches Konzept. Er wird erstellt, wenn die Funktion ausgeführt wird Es wird durch die Bereichskette des Ausführungskontexts referenziert. Daraus kann geschlossen werden, dass sowohl der Ausführungskontext als auch die aktiven Objekte dynamische Konzepte sind und die Bereichskette des Ausführungskontexts durch die Funktionsbereichskette initialisiert wird.

Während der Ausführung der Funktion wird jedes Mal, wenn eine Variable angetroffen wird, abgerufen, wo die Daten abgerufen und gespeichert werden. Dieser Prozess beginnt am Kopf der Bereichskette, also am aktiven Objekt, und sucht danach der Bezeichner mit demselben Namen. Wenn nicht, wird die Suche nach dem nächsten Objekt in der Bereichskette fortgesetzt. Wenn nicht alle Objekte gefunden werden, gilt der Bezeichner als undefiniert Bei der Ausführung der Funktion durchläuft jeder Bezeichner diesen Suchvorgang.

Abschluss (Abschluss)
Schauen wir uns zunächst ein Beispiel an, Javascript-Code:
[Javascript]
2 (){ //Neues Seitenladeereignis
3. for (var i = 1; i 4. /Jeden Anker finden
5.        Anchor.onclick = function () {//Ein Klickereignis für den Anker hinzufügen        6. 🎜>7.                                                                                                                           Front-End-Code:
[html]
1. Körper>
2. php1.cn/"> 4. 5 .

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
Vorheriger Artikel:Details in JavaScriptNächster Artikel:Details in JavaScript