Betrachten Sie den folgenden JavaScript-Code:Javascript Schließung sofortige Auswertung
var a = [];
var f = function() {
for (var i = 0; i < 3; i++) {
a.push(function(){alert(i)});
}
for (var j = 0; j < 3; j++) {
a[j]();
}
};
Die Warnungen auszudrucken '3' alle drei Mal. Ich möchte ein anderes Verhalten - in jeder Iteration der Schleife eine Funktion erzeugen, die den aktuellen Wert von i ausgibt. I.e. 3 Funktionen, die verschiedene Indizes drucken.
Irgendwelche Ideen?
Nur um hinzuzufügen, ist das wegen Javascript hat kein Konzept von Block Umfang nur Funktionsumfang, das warf mich auch ... http://www.mattfreeman.co.uk/2010/03/closures-scope-in- javascript-vs-c/ –