Wenn in JavaScript eine interne Funktion außerhalb der externen Funktion aufgerufen wird, die die interne Funktion enthält, wird ein Abschluss gebildet. Ein Abschluss ist ein Stapelbereich, der bei der Rückkehr der Funktion keine Ressourcen freigibt Funktionsvariable, die aktiv ist, wenn die Funktion zurückkehrt.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, JavaScript-Version 1.8.5, Dell G3-Computer.
Die offizielle Erklärung des Abschlusses lautet: ein Ausdruck (normalerweise eine Funktion), der viele Variablen und eine an diese Variablen gebundene Umgebung hat, sodass diese Variablen auch Teil des Ausdrucks sind.
Merkmale des Abschlusses:
1. Als Referenz auf eine Funktionsvariable wird sie aktiviert, wenn die Funktion zurückkehrt.
2. Ein Abschluss ist ein Stapelbereich, der keine Ressourcen freigibt, wenn eine Funktion zurückkehrt.
Einfach ausgedrückt ermöglicht JavaScript die Verwendung interner Funktionen – das heißt, Funktionsdefinitionen und Funktionsausdrücke befinden sich im Funktionskörper einer anderen Funktion. Darüber hinaus haben diese inneren Funktionen Zugriff auf alle lokalen Variablen, Parameter und anderen inneren Funktionen, die in der äußeren Funktion deklariert sind, in der sie existieren.
Ein Abschluss wird gebildet, wenn eine dieser inneren Funktionen außerhalb der äußeren Funktion aufgerufen wird, die sie enthält.
function closure(){ var str = "I'm a part variable."; return function(){ alert(str); } } var fObj = closure(); fObj();
Im obigen Code ist str eine im Funktionsabschluss definierte lokale Variable. Wenn nach Abschluss des Funktionsaufrufs nicht mehr auf str zugegriffen werden kann, wird str nach Abschluss der Funktionsausführung freigegeben.
Aber da der Funktionsabschluss eine interne Funktion zurückgibt und die zurückgegebene Funktion auf die Variable str verweist, kann auf str verwiesen werden, nachdem die Abschlussfunktion ausgeführt wurde, sodass die von str belegten Ressourcen nicht recycelt werden. Dieser Verschluss bildet einen Verschluss.
Verwandte Empfehlungen: Javascript-Lern-Tutorial
Das obige ist der detaillierte Inhalt vonWann bildet Javascript einen Abschluss?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!