


Beispiel für die Verwendung von Javascript-Schließungen: Analyse_Javascript-Kenntnisse
Dieser Artikel analysiert das Konzept und die Verwendung von Javascript-Verschlüssen anhand von Beispielen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Wenn es um Schließungen geht, muss jeder davon gehört haben. Hier ist mein einfaches Verständnis.
Um ehrlich zu sein, gibt es nicht viele Szenarien, in denen Abschlüsse in der täglichen Arbeit tatsächlich manuell geschrieben werden, aber die im Projekt verwendeten Frameworks und Komponenten von Drittanbietern verwenden mehr oder weniger Abschlüsse.
Daher ist es sehr wichtig, Abschlüsse zu verstehen. Haha...
1. Was ist Schließung
Kurz gesagt handelt es sich um eine Funktion, die die internen Variablen anderer Funktionen lesen kann.
Aufgrund der Eigenschaften des JS-Variablenbereichs kann auf interne Variablen nicht von außen zugegriffen werden, auf externe Variablen jedoch von innen.
2. Nutzungsszenarien
1. Private Mitglieder implementieren.
2. Schützen Sie den Namespace und vermeiden Sie die Verschmutzung globaler Variablen.
3. Variablen zwischenspeichern.
Sehen wir uns zunächst ein Beispiel für die Kapselung an:
//Der Gültigkeitsbereich der Variablen liegt innerhalb der Funktion und kann von außen nicht aufgerufen werden
var name = "default";
zurück {
getName: function () {
Rückgabename;
},
setName: Funktion (newName) {
name = newName;
}
}
}();
console.log(person.name); // Direkter Zugriff, das Ergebnis ist: undefiniert
console.log(person.getName()); // Das Ergebnis ist: default
console.log(person.setName("langjt"));
console.log(person.getName()); // Das Ergebnis ist: langjt
Sehen Sie sich die häufig verwendeten Abschlüsse in Schleifen an, um das Problem der Referenzierung externer Variablen zu lösen:
for (var i=0, len=aLi.length; i
warning(i); // Egal auf welches
};
}
Nach Verwendung des Verschlusses:
for (var i=0, len=aLi.length; i
Rückgabefunktion() {
Alert(i); // Klicken Sie zu diesem Zeitpunkt auf das Element
}
})(i);
}
3. Vorsichtsmaßnahmen
1. Speicherverlust
Da Schließungen dazu führen, dass alle Variablen in der Funktion im Speicher gespeichert werden, was viel Speicher verbraucht, können Schließungen nicht missbraucht werden, da es sonst zu Leistungsproblemen auf der Webseite kommt.
Zum Beispiel:
var oDiv = document.getElementById(‘J_DIV’);
var id = oDiv.id;
oDiv.onclick = function() {
// Alert(oDiv.id); Hier gibt es einen Zirkelverweis, und oDiv befindet sich noch im Speicher, nachdem die IE-Seite mit niedriger Version geschlossen wurde. Speichern Sie daher nach Möglichkeit primitive Typen anstelle von Objekten im Cache.
alert(id);
};
oDiv = null;
}
2. Variablenbenennung
Wenn der Variablenname der internen Funktion und der Variablenname der externen Funktion gleich sind, kann die interne Funktion nicht mehr auf die gleichnamige Variable der externen Funktion verweisen.
Zum Beispiel:
Rückgabefunktion(num) {
console.log(num);
}
}
var f = new foo(9);
f(); // undefiniert
In fact, the above usage, the professional term is called function currying, is to transform a function that accepts multiple parameters into a function that accepts a single parameter (the first parameter of the original function), and returns the remaining parameters. New function technology that takes parameters and returns a result. Essentially, it also takes advantage of the caching feature of closures, such as:
Return function(y) {
return num y;
};
};
var inc = adder(1);
var dec = adder(-1);
//inc, dec are now two new functions, their function is to convert the passed parameter value (/‐)1
alert(inc(99));//100
alert(dec(101));//100
alert(adder(100)(2));//102
alert(adder(2)(100));//102
Another example is Ali Yubo’s seaJS source code:
* util-lang.js - The minimal language enhancement
*/
function isType(type) {
return function(obj) {
Return {}.toString.call(obj) == "[object " type "]"
}
}
var isObject = isType("Object");
var isString = isType("String");
I hope this article will be helpful to everyone’s JavaScript programming design.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



In C++ ist ein Abschluss ein Lambda-Ausdruck, der auf externe Variablen zugreifen kann. Um einen Abschluss zu erstellen, erfassen Sie die äußere Variable im Lambda-Ausdruck. Abschlüsse bieten Vorteile wie Wiederverwendbarkeit, Ausblenden von Informationen und verzögerte Auswertung. Sie sind in realen Situationen nützlich, beispielsweise bei Ereignishandlern, bei denen der Abschluss auch dann noch auf die äußeren Variablen zugreifen kann, wenn diese zerstört werden.

C++-Lambda-Ausdrücke unterstützen Abschlüsse, die Funktionsbereichsvariablen speichern und sie für Funktionen zugänglich machen. Die Syntax lautet [capture-list](parameters)->return-type{function-body}. Capture-Liste definiert die zu erfassenden Variablen. Sie können [=] verwenden, um alle lokalen Variablen nach Wert zu erfassen, [&], um alle lokalen Variablen nach Referenz zu erfassen, oder [Variable1, Variable2,...], um bestimmte Variablen zu erfassen. Lambda-Ausdrücke können nur auf erfasste Variablen zugreifen, den ursprünglichen Wert jedoch nicht ändern.

Ein Abschluss ist eine verschachtelte Funktion, die auf Variablen im Bereich der äußeren Funktion zugreifen kann. Zu ihren Vorteilen gehören Datenkapselung, Zustandserhaltung und Flexibilität. Zu den Nachteilen gehören der Speicherverbrauch, die Auswirkungen auf die Leistung und die Komplexität des Debuggens. Darüber hinaus können Abschlüsse anonyme Funktionen erstellen und diese als Rückrufe oder Argumente an andere Funktionen übergeben.

Funktionsabschlüsse der Go-Sprache spielen beim Unit-Testen eine wichtige Rolle: Werte erfassen: Abschlüsse können auf Variablen im äußeren Bereich zugreifen, sodass Testparameter erfasst und in verschachtelten Funktionen wiederverwendet werden können. Vereinfachen Sie den Testcode: Durch die Erfassung von Werten vereinfachen Abschlüsse den Testcode, indem sie die Notwendigkeit beseitigen, Parameter für jede Schleife wiederholt festzulegen. Verbessern Sie die Lesbarkeit: Verwenden Sie Abschlüsse, um die Testlogik zu organisieren und so den Testcode klarer und leichter lesbar zu machen.

Ja, die Einfachheit und Lesbarkeit des Codes können durch verkettete Aufrufe und Abschlüsse optimiert werden: Verkettete Aufrufe verknüpfen Funktionsaufrufe in einer fließenden Schnittstelle. Abschlüsse erstellen wiederverwendbare Codeblöcke und greifen auf Variablen außerhalb von Funktionen zu.

Die Auswirkungen von Funktionszeigern und -abschlüssen auf die Go-Leistung sind wie folgt: Funktionszeiger: Etwas langsamer als direkte Aufrufe, aber verbessert die Lesbarkeit und Wiederverwendbarkeit. Schließungen: Normalerweise langsamer, kapseln aber Daten und Verhalten. Praktischer Fall: Funktionszeiger können Sortieralgorithmen optimieren und Abschlüsse können Ereignishandler erstellen, aber sie bringen Leistungseinbußen mit sich.

Abschlüsse in Java ermöglichen es inneren Funktionen, auf äußere Bereichsvariablen zuzugreifen, selbst wenn die äußere Funktion beendet wurde. Durch anonyme innere Klassen implementiert, enthält die innere Klasse einen Verweis auf die äußere Klasse und hält die äußeren Variablen aktiv. Schließungen erhöhen die Codeflexibilität, Sie müssen sich jedoch des Risikos von Speicherverlusten bewusst sein, da Verweise auf externe Variablen durch anonyme innere Klassen diese Variablen am Leben halten.

Die Verwendung von POST-Anfragen in PHP ist ein üblicher Vorgang bei der Website-Entwicklung. Daten können über POST-Anfragen an den Server gesendet werden, z. B. Formulardaten, Benutzerinformationen usw. Die ordnungsgemäße Verwendung von POST-Anfragen kann die Datensicherheit und -genauigkeit gewährleisten. Im Folgenden wird die korrekte Verwendung von POST-Anfragen in PHP vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Grundprinzipien von POST-Anfragen in PHP In PHP können die über die POST-Methode übermittelten Daten mithilfe der globalen Variablen $_POST abgerufen werden. Die POST-Methode wandelt die Formularnummer in um
