1. Was ist ein Abschluss?
Mithilfe von Closures können Sie Daten mit Funktionen verknüpfen, die diese Daten verarbeiten. Zum Beispiel: Funktion foo() { sei a = 1; return Funktion() { konsole.log(a); } } sei foo1 = foo(); foo1() // Ausgabe 1 Dies ist ein Beispiel für einen Abschluss. In foo wird eine Funktion zurückgegeben, und diese Funktion hat einen Abschluss, der den internen Gültigkeitsbereich von foo abdeckt, also a, sodass a immer erhalten bleibt und nicht erneut ausgeführt wird, wenn foo endet. 2. Die Rolle von Verschlüssen2.1) SpeicherWas ist die Gedächtniseigenschaft von Closures? Wenn ein Abschluss generiert wird, bleibt der Zustand der Umgebung, in der sich die Funktion befindet, immer im Speicher und wird nach dem Ende des äußeren Funktionsaufrufs nicht vom Garbage Collection-Mechanismus wiederhergestellt. Zum Beispiel: Funktion foo() { sei a = 0; return Funktion() { eine ++; konsole.log(a); } } sei foo1 = foo(); sei foo2 = foo(); foo1(); // 1 foo2(); // 1 foo2(); // 2 foo1(); // 2 Da a Teil des Closure ist, wird der Umgebungszustand von a beim Generieren des Closures im Speicher beibehalten und nach dem Ende des äußeren Funktionsaufrufs nicht gelöscht. Wenn foo1 verwendet wird, erhöht sich daher der Wert von a im Speicher um 1. 2.2) Simulation privater VariablenStellen Sie sicher, dass eine Variable nur mit angegebenen Operationen bearbeitet werden kann. Zum Beispiel : Funktion foo() { sei A = 0; zurückkehren { getA : Funktion() { Rückgabe A; }, hinzufügen: Funktion() { Eine A++; }, del : Funktion() { A --; } } } sei foo1 = foo(); console.log(foo1.getA()); // 0 foo1.add(); konsole.log(foo1.getA()); // 1 foo1.del(); console.log(foo1.getA()); // 0 Durch die Schließung wird sichergestellt, dass A nur den angegebenen Additions- und Subtraktionsoperationen unterzogen werden kann. 3. Hinweise zu SchließungenClosures sollten nicht missbraucht werden, da sie sonst aufgrund übermäßiger Speichernutzung zu Leistungsproblemen auf der Webseite und sogar zu Speicherlecks führen können. ZusammenfassenDieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalt auf 123WORDPRESS.COM lesen können! Das könnte Sie auch interessieren:
|
>>: Zusammenfassung der Updates und gefundenen Probleme des Docker Consul-Containerdienstes
In diesem Artikel wird der spezifische Code von V...
Inhaltsverzeichnis Schriftarten mit font-face ric...
Effektbild: Der Implementierungscode lautet wie f...
Typische MySQL-Szenarien: Schnittmenge und Differ...
Inhaltsverzeichnis 1. Digitale Aufzählung 2. Zeic...
Derzeit gibt es viele Betriebsaktivitäten für öff...
1: Anweisungsreihenfolge der Gruppierungsfunktion...
Kostenlose Punkte Interviewer : Haben Sie schon e...
Ich habe fast zwei Stunden damit verbracht, versc...
Die einfachste Store-Anwendung in Vue ist die glo...
Inhaltsverzeichnis 1. Staatshaken 1. Grundlegende...
Inhaltsverzeichnis 1.kvm-Bereitstellung 1.1 KVM-I...
Inhaltsverzeichnis Vorwort SVG generieren Einführ...
Als ich kürzlich CSS studierte, stellte ich fest,...
Inhaltsverzeichnis 1. Selbstaufzählbare Eigenscha...