Heim  >  Artikel  >  Web-Frontend  >  Ausführungsprozess der JavaScript-Funktion_Javascript-Fähigkeiten

Ausführungsprozess der JavaScript-Funktion_Javascript-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 09:00:211849Durchsuche

1. Jede JavaScript-Funktion ist eine Instanz des Funktionsobjekts, das über eine interne Eigenschaft [[Scope]] verfügt, auf die nur die JavaScript-Engine zugreifen kann. Scope]] speichert eine Sammlung von Bereichen, die als „Scope-Kette“ bezeichnet wird. Die Sammlung speichert das „Variablenobjekt“ VO oder das „aktive Objekt“ AO (AO hat mehr This- und Argumentattribute als VO).

2. Wenn eine Funktion erstellt wird, werden alle veränderlichen Objekte in der Bereichskette ihres übergeordneten Bereichs zu ihrem [[Bereich]] hinzugefügt (falls der übergeordnete Bereich vorhanden ist). global, dann wird nur ein globales Objekt zur Bereichskette der aktuellen Funktion hinzugefügt).

3. Wenn die Funktion ausgeführt wird, wird die Ausführungsumgebung der Funktion in einen Umgebungsstapel verschoben:

1. Zu diesem Zeitpunkt treten wir in die Variableninitialisierungsphase der Funktion ein: Dieser Wert, Funktionsparameter, Funktionsdeklaration, Variablendeklaration und Argumente Das aktive Objekt AO der aktuellen Funktion wird dann an der Spitze der aktuellen Funktionsbereichskette gespeichert.

Hinweis: AO wird in der folgenden Reihenfolge ausgefüllt:

1. Funktionsparameter (wenn Parameter übergeben werden, werden ihnen Werte zugewiesen, wenn keine Parameter übergeben werden, ist der Anfangswert undefiniert), die zweite Priorität
2. Funktionsdeklaration (bei Namenskonflikten wird diese überschrieben) hat die höchste Priorität
3. Variablendeklaration (initialisieren Sie den Variablenwert auf undefiniert, wenn ein Namenskonflikt auftritt, wird er ignoriert) Dritte Priorität
2. Dann kommt die Ausführungsphase der Funktion. In dieser Phase werden alle in der aktuellen Funktion verwendeten Variablen und Funktionsdeklarationen aus der [[Scope]]-Bereichskette der aktuellen Funktion durchsucht Wenn das AO-Objekt der aktuellen Funktion nicht nach dem übergeordneten Objekt sucht, wird schließlich das globale Objekt gefunden. Wenn keins vorhanden ist, wird ein Fehler gemeldet undefiniert).

Der Ausführungsprozess der oben genannten JavaScript-Funktion ist der gesamte vom Herausgeber freigegebene Inhalt. Ich hoffe, dass er Ihnen eine Referenz geben kann, und ich hoffe, dass Sie Script Home unterstützen.

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