Dieser Artikel vermittelt Ihnen Wissen über die Bereichskette in JavaScript. Wir kennen oft nur diese Grundregel. Ich hoffe, es kann dir etwas helfen!
Scope
1. Was ist Scope? Einfach ausgedrückt ist Scope (englisch: Scope) eine Reihe von Regeln zum Auffinden von Variablen anhand des Namens Dieser Raum ist geschlossen und hat keinen Einfluss auf den Außenraum. Der Außenraum hat jedoch keinen Zugriff auf den Außenraum, der ihn umschließt.
2. [[Scopes]] Attribute
In JavaScript gibt es einige Attribute im Objekt, auf die wir zugreifen können, und auf einige, auf die wir nicht frei zugreifen können, [[Scopes]] Eine davon ist die Eigenschaft, die nur von der JavaScript-Engine gelesen werden kann. Tatsächlich nennen wir [[scope]] oft Scope, in dem die Kontextsammlung der Scope-Laufzeit gespeichert wird.
Da func.prototype.constructor und func auf dieselbe Funktion verweisen, zeigen wir hier das Attribut [[Scopes]] an, indem wir auf das Prototypobjekt der Funktion func zugreifen
3 Eine Sammlung von Ausführungszeit-Kontextobjekten, die in
[[scope]] gespeichert sind. Diese Sammlung ist in einer Kette verbunden. Wir nennen diese Kettenverbindung eine Scope-Kette. JavaScript sucht nach Variablen über die Bereichskette. Die Suchmethode besteht darin, entlang der Oberseite der Bereichskette nach unten zu suchen (das Objekt wird innerhalb der Funktionsbereichskette durchsucht).
//以如下代码为例说明JavaScript通过作用域链查找变量的原理** function a() { function b() { var b = 123; } var a = 123; b(); } var glob = 100;
Zu diesem Zeitpunkt kann die Bereichskette als Erstes auf das Schlüssel-Wert-Paar zugreifen Das Aktivierungsobjekt. Wenn es kein einziges Zugriffsobjekt gibt, ist die Gültigkeitskette von b wie folgt: Wenn b gerade definiert ist aber nicht aufgerufen, lautet die Gültigkeitskette von b wie folgt: a ist gleich4 Wenn Funktion b in Funktion a() aktiviert und aufgerufen wird, lautet die Gültigkeitskette wie folgt
Die Die Bereichskette zeigt zuerst auf das Aktivierungsobjekt der Funktion b(). Der Zugriff auf die Suchvariablen erfolgt ebenfalls in der Reihenfolge der Bereichskette und stoppt, wenn sie gefunden wird5. Der Grund, warum der externe Bereich nicht zugreifen kann Der interne Bereich besteht darin, dass die Bereichskette des externen Bereichs nicht über das Aktivierungsobjekt des internen Bereichs verfügt, sodass auf interne Variablen nicht zugegriffen werden kann. Die Reihenfolge des Zugriffs auf Variablen in internen Bereichen richtet sich nach der Bereichskette Wenn nicht, suchen Sie nach außen entlang der Bereichskette.
Verwandte Empfehlungen: Javascript-Lernprogramm
Das obige ist der detaillierte Inhalt vonScope Chain, das Grundprinzip von JavaScript (ausführliche Erklärung mit Bildern und Text). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!