Der sogenannte Verschluss sollte sich beziehen: eine interne Funktion, die andere Variablen als die aktuelle Funktion liest, dh die Kontextumgebung, in der sie erstellt wurde.
Die Codekopie lautet wie folgt:
Funktion hello () {
var char = "Hallo, Welt";
Funktion print () {
console.log (char);
};
return print ();
}
Es ist zu beachten, dass sich die Druckfunktion hier auf die char -Variable der externen Hallo -Funktion bezieht. Hier können wir hier zurückgeben
Die Codekopie lautet wie folgt:
Hallo Welt
In gewissem Sinne sollte diese Funktion auf den Umfang zugeordnet werden. Natürlich haben wir keine Möglichkeit, direkt auf Char zuzugreifen, es sei denn, es gibt einen Fehler, wenn wir diese Variable deklarieren. wie
Die Codekopie lautet wie folgt:
Funktion hello () {
char = "Hallo, Welt";
Funktion print () {
console.log (char);
};
return print ();
}
Nur weil es einen Var fehlt.
Die Codekopie lautet wie folgt:
Hier wird Hallo ein Verschluss. Ein Verschluss ist ein spezielles Objekt. Es besteht aus zwei Teilen: einer Funktion und der Umgebung, in der die Funktion erstellt wird. Die Umgebung besteht aus lokalen Variablen im Bereich, wenn der Verschluss geschaffen wird.
JavaScript -Schließungen und diese
Es ist zu beachten, dass es Probleme beim Lesen und Argumenten geben kann.
Die Codekopie lautet wie folgt:
Funktion hello () {
this.char = "Hallo, Welt";
Funktion output () {
char = "Ich bin keine Hallo Welt";
console.log (this.char);
};
return output ();
}
Natürlich ist dieses Beispiel nicht angemessen genug. Wir brauchen also ein zusätzliches Beispiel, um dieses Problem zu erklären. Das Folgende ist ein Beispiel aus "JavaScript Advanced Programing", um dieses Problem zu veranschaulichen.
Die Codekopie lautet wie folgt:
var name = "das Fenster";
var Object = {
Name: "mein Objekt",
GetNameFunc: function () {
return function () {
kehre diesen namennamen zurück;
}
}
};
Object.getNameFunc () () () ()
Diese Verwendung ist jedoch wirklich und die Lösung besteht darin, eine vorübergehende Variable zu speichern, die, wie im vorherigen Artikel "einige Kenntnisse darüber in JavaScript" erwähnt, erwähnt.
Die Codekopie lautet wie folgt:
var name = "das Fenster";
var Object = {
Name: "mein Objekt",
GetNameFunc: function () {
var das = dies;
return function () {
Gibt diesen namennamen zurück;
}
}
};
Object.getNameFunc () () () ()
JavaScript -Schließungen und Lesen und Schreiben von Variablen
Es ist erwähnenswert, dass wir sie auch ändern können, wenn wir unsere Variablen nicht gut verarbeiten.
Die Codekopie lautet wie folgt:
Funktion hello () {
var char = "Hallo, Welt";
zurückkehren{
SET: Funktion (String) {
return char = string;
},
drucken: function () {
console.log (char)
}
}
}
var sagt = Hallo ();
Say.set ('New Hello, World')
Say.print () // neue Hallo Welt
JavaScript -Schließungen und Leistung
Zitat MDC
Die Codekopie lautet wie folgt:
Wenn für bestimmte spezielle Aufgaben keine Schließungen erforderlich sind, ist es unklug, Funktionen in anderen Funktionen ohne Bedarf zu erstellen, da die Schließungen negative Auswirkungen auf die Skriptleistung haben, einschließlich Verarbeitungsgeschwindigkeit und Speicherverbrauch.
Der Artikel auch erwähnt.
Die Codekopie lautet wie folgt:
Zum Beispiel sollten beim Erstellen eines neuen Objekts oder einer neuen Klasse Methoden normalerweise mit dem Prototyp des Objekts zugeordnet und im Konstruktor des Objekts definiert werden. Der Grund dafür ist, dass dies dazu führt, dass die Methode jedes Mal, wenn der Konstruktor aufgerufen wird, neu zugewiesen wird (dh für die Erstellung jedes Objekts).