Diese Funktion soll nur einmal ausgeführt werden. Allerdings verstehe ich nicht, warum jedes Mal, wenn es aufgerufen wird, die Variable nicht zu false zurückkehrt.Warum funktioniert diese Funktion? Sollte nicht "ausgeführt" jedes Mal, wenn die Funktion aufgerufen wird, zu false zurückkehren?
var onlyOnce = function() {
var executed = false;
return function() {
if (executed == false) {
executed = true;
console.log("Code reached");
}
};
}();
onlyOnce();
onlyOnce();
nur einmal Dieser Code druckt. Warum funktioniert das?
In Javascript haben die Variablen Geltungsbereich in den enthaltenen Klammern. In gewissem Sinn denken Sie an die zurückgegebene Funktion als "ausgeführt" als global und behalten daher ihren Wert bei, wenn Sie sie ändern. Es ist komisch, aber hey, das ist Javascript – Makketronix
Lesen Sie über Schließungen ... http://stackoverflow.com/questions/111102/how-do-javascript-closures-work –