In einem Satz: Ein Abschluss ist eine Funktion, die externe Bindungen innerhalb des Gültigkeitsbereichs erfasst.
Offizielle Definition: Ein Ausdruck (normalerweise eine Funktion), der viele Variablen und eine an diese Variablen gebundene Umgebung hat, da diese Variablen auch als Teil des Ausdrucks bezeichnet werden.
Die Beziehung zwischen freien Variablen und Abschlüssen: Freie Variablen sind für die Erstellung von Abschlüssen geschlossen.
Die interne Logik ist
Freie Variablen: Wenn innerhalb einer Funktion andere Funktionen vorhanden sind, können diese internen Funktionen auf die in der externen Funktion deklarierten Variablen zugreifen (diese Variablen werden als freie Variablen bezeichnet).
Drei Merkmale von Verschlüssen:
1. In Funktionen verschachtelte Funktionen
2 Parameter und Variablen
3. Parameter und Variablen werden vom Garbage-Collection-Mechanismus nicht recycelt
Der Nachteil der Schließung besteht darin, dass sie resident ist im Speicher und im Willen Erhöhte Speichernutzung, unsachgemäße Verwendung kann leicht zu Speicherverlusten führen.
Vorteile von Schließungen:
1 Ich hoffe, eine Variable kann langfristig im Speicher verbleiben
2. Verschmutzung globaler Variablen vermeiden
3
Der Abschluss löst das Indexwertproblem:
charset="UTF-8"> | |
Speicherleckproblem:
Die JS-Objekte und DOM-Objekte des IE verwenden unterschiedliche Garbage-Collection-Mechanismen, sodass Schließungen im IE zu Speicherlecks führen, d. h. im Speicher befindliche Elemente können nicht zerstört werden.
Funktionsabschluss(){ |
|
||||||||||||||||
var oDiv = document.getElementById("div1");//oDiv Es bleibt nach der Verwendung im Speicher | |||||||||||||||||
oDiv.onclic = function(){ | |||||||||||||||||
alert("oDiv.innerHTML");//Die Verwendung von oDiv hier führt zu Speicherverlusten | |||||||||||||||||
}; | |||||||||||||||||
|
Das obige ist der detaillierte Inhalt vonIn einem Satz: Was ist Schließung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!