Was ist eine Abschlussfunktion?Wenn man anfängt, Abschlüsse zu lernen, ist sie wahrscheinlich für jeden schwer zu verstehen. Nach der offiziellen Erklärung zu urteilen, ist sie relativ konzeptionell.
Aber wir gehen immer noch von der Bedeutung der Schließung aus.
Abschluss bedeutet, dass eine Funktion freie und unabhängige Variablen hat. Mit anderen Worten: Eine in einem Abschluss definierte Funktion kann sich an die Umgebung „erinnern“, in der sie erstellt wurde.
Schauen wir uns nach der offiziellen Erklärung zunächst ein einfaches Zählbeispiel an.
var c = 0; function count(){ c++; } count();// 1 count();// 2
Dieses Beispiel wird mit globalen Variablen implementiert, aber es gibt ein Problem, das auch von anderen Methoden aufgerufen werden kann. Zu diesem Zeitpunkt kann der gespeicherte Wert von c geändert werden, wodurch die Anzahl ungültig wird Wie wir dieses Problem gut lösen können, ist die Verwendung lokaler Variablen, zum Beispiel:
function count(){ var c = 0; function add(){ c++; } add(); } count();// c = 1 count();// c = 1
Da die internen Variablen nach der Erstellung und Ausführung nur dann vorhanden sind, wird die gesamte Funktion verworfen. Wie kann dies dann erreicht werden? Wir werden Schließungen verwenden, um es zu lösen. Ich möchte es noch einmal erwähnen: Schließung = Funktionsumgebung
function count(){ var c = 0; function add(){ c++; } return add; } var ct = count(); ct(); // c = 1 ct(); // c = 2
Zu diesem Zeitpunkt können wir diese Schließung verwenden, um die Zählfunktion zu vervollständigen, und die interne Umgebung ist die lokale Variable c. Was wir hier erreichen, sind externe Daten der Verschluss Welche weiteren Funktionen hat das?
Verwenden Sie Abschlüsse, um private Methoden zu simulieren
Dies ist ein bisschen wie die privaten Methoden oder privaten Variablen von JAVA, die nur von Ihnen selbst bedient werden können!
var person = (function(){ var _name = "编程的人"; var age = 20; return { add:function(){ age++; }, jian:function(){ age--; }, getAge:function() { return age; }, getName:function(){ return _name; }, setName: function (name) { _name = name; } } })(); person.add(); var age = person.getAge(); console.log(age) person.setName("编程的人公众号:bianchengderen") console.log(person.getName())
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für alle beim Erlernen der Javascript-Programmierung hilfreich sein wird.