1. Jede JavaScript -Funktion ist eine Instanz eines Funktionsobjekts. Es verfügt über eine interne Eigenschaft [[Scope]], die nur für die JavaScript -Engine zugänglich ist. Dieses [[Scope]] speichert eine Scoped -Sammlung, die als "Scope -Kette" bezeichnet wird, und in der Sammlung speichert "Mutable Object" VO oder "Active Object" AO (AO hat mehr diese und Argumente Eigenschaften als VO).
2. Wenn eine Funktion erzeugt wird, werden alle veränderlichen Objekte in der Bereichskette ihres übergeordneten Umfangs zu seinem [[Scope]] hinzugefügt (wenn der übergeordnete Bereich global ist, wird nur ein globales Objekt in die Bereichskette der aktuellen Funktion hinzugefügt).
3. Wenn eine Funktion ausgeführt wird, wird die Ausführungsumgebung der Funktion in einen Umgebungsstapel gebracht:
1. Zu diesem Zeitpunkt tritt die variable Initialisierungsstufe der Funktion ein. Diese Stufe bestimmt die interne Funktion: Dieser Wert, Funktionsparameter, Funktionserklärungen, variable Deklarationen und Argumente. Basierend auf diesen Werten wird das aktive Objekt AO der aktuellen Funktion komponiert und das AO -Objekt in der ersten Position der aktuellen Funktionsbereichskette gespeichert.
Hinweis: AO ist in der folgenden Reihenfolge ausgefüllt:
1. Funktionsparameter (wenn ein Parameter übergeben wird, wird er zugewiesen. Wenn der Parameter nicht übergeben wird, ist der Initialisierungswert undefiniert) Die zweite Priorität ist
2. Funktionserklärung (wenn ein Lebensnamenkonflikt auftritt, wird er überschrieben) Die höchste Priorität ist die höchste Priorität
3..
2. Dann ist es die Ausführungsstufe der Funktion. Alle in der aktuellen Funktion verwendeten Variablen und Funktionserklärungen werden aus der Umfangskette der Stromfunktion durchsucht. Gemäß der Position des Objekts in der Bereichskette wird das AO -Objekt der aktuellen Funktion zuerst durchsucht. Wenn es kein oberes Objekt gibt, wird das globale Objekt gefunden. Wenn es nicht gibt, wird ein Fehler gemeldet (die Variable ist nicht definiert).
Der obige JavaScript -Funktionsausführungsprozess ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.