Considérez ce qui suit le code Javascript:javascript fermeture évaluation immédiate
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]();
}
};
Les alertes imprimer sur '3' trois fois. Je veux un comportement différent - dans chaque itération de la boucle générer une fonction qui imprime la valeur actuelle de i. C'est à dire. 3 fonctions qui impriment différents index.
Des idées?
Juste pour ajouter c'est à cause de Javascript n'a pas de concept de portée de bloc seulement la portée de fonction, ceci m'a jeté aussi ... http://www.mattfreeman.co.uk/2010/03/closures-scope-in- javascript-vs-c/ –