In diesem Artikel werden hauptsächlich js-Abschlüsse und -Rückrufe sowie die Konzepte und Eigenschaften von Abschlüssen erläutert und die Schritte und Verwendungsmethoden anhand von Beispielen analysiert
1. Abschlüsse
Der Abschluss ist eine Schwierigkeit und ein Merkmal der Javascript-Sprache. Viele fortgeschrittene Anwendungen basieren auf dem Abschluss.
Verschlüsse haben drei Eigenschaften:
1. Funktionen verschachtelt
2. Funktionen können auf externe Parameter und Variablen verweisen;
3. Parameter und Variablen werden vom Garbage-Collection-Mechanismus nicht recycelt.
Ein Abschluss ist eine Funktion, die Zugriff auf eine Variable im Gültigkeitsbereich einer anderen Funktion hat. Die häufigste Methode zum Erstellen eines Abschlusses besteht darin, eine andere Funktion innerhalb einer Funktion zu erstellen und über eine andere lokale Funktion darauf zuzugreifen Variablen dieser Funktion. Ein Vor- und Nachteil der Verwendung von Abschlüssen besteht darin, dass lokale Variablen im Speicher liegen können und globale Variablen vermieden werden können. Globale Variablen sind in jedem Modul aufrufbar, was zwangsläufig katastrophale Folgen hat. Daher empfiehlt es sich, private, gekapselte lokale Variablen zu verwenden. Nachdem die allgemeine Funktion ausgeführt wurde, wird das lokal aktive Objekt zerstört und nur der globale Bereich im Speicher gespeichert. Bei Schließungen ist die Situation jedoch anders!
Beispiel 1:
//Ein Abschluss ist eine Funktion, deren Rückgabewert eine andere Funktion ist. Die zurückgegebene Funktion kann verwendet werden, um auf die lokalen Teile der Außenseite zuzugreifen Die äußere Variable.
function outer(){ var val = 0; return function (){ val += 1; document.write(val + "<br />"); }; } var outObj = outer(); outObj();//1,执行val += 1后,val还在 outObj();//2 outObj = null;//val 被回收 var outObj1 = outer(); outObj1();//1 outObj1();//2
Bei unsachgemäßer Verwendung erhöht sich der Speicherverbrauch (wenn viele äußere() definiert sind). Beispiel oben, Dann werden viele Val-Variablen im Speicher gespeichert.
Garbage-Collection-Prinzip von JavaScript:
(1) Wenn in JavaScript nicht mehr auf ein Objekt verwiesen wird, wird das Objekt von GC recycelt; >
(2) Wenn zwei Objekte aufeinander verweisen und nicht mehr von einem Dritten referenziert werden, werden auch die beiden Objekte, die aufeinander verweisen, recycelt.Welche Vorteile bietet die Verwendung von Verschlüssen? Die Vorteile der Verwendung von Abschlüssen sind:
1. Ich hoffe, dass eine Variable lange im Speicher verbleibt2. Vermeiden Sie die Verschmutzung globaler Variablen
3. Existenz privater Mitglieder
2. Prinzip des Rückrufs Funktion: Ich gehe jetzt, ich werde Sie benachrichtigen, wenn es eintrifft.“ Dies ist ein asynchroner Prozess. Während des Prozesses „Ich gehe“ (Funktionsausführung) kann „Sie“ alles tun und „Sie benachrichtigen“ (Rückruf). ) wenn „ankommt“ (Funktionsausführung ist abgeschlossen). >
//Fügen Sie die doSomething-Methode zur Thing-Klasse hinzu, in der das Konstruktoraufrufmuster verwendet wird
function doSomething(callback){ callback(1,2); } function numberAdd(a,b){ document.write(a+b); } doSomething(numberAdd);//3
Das obige ist der detaillierte Inhalt vonBeispielerklärung für Abschlüsse und Rückrufe in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!