Ich versuche, das Beispiel mit dem IIEF hier zu reproduzieren:Verschlüsse in for-Schleifen in Javascript
Understand JavaScript Closures With Ease
EDIT
Es ist unter 3. Verschlüsse schief gegangen
Das ist mein Code:
var myArray = ["a", "b", "c"];
function doSomething(someArray) {
var counter = 10;
for (var i = 0; i < someArray.length; i++) {
someArray[i] = function(inner_i) {
return function() {
return counter += inner_i;
}();
}(i);
}
return someArray;
}
var newArray = doSomething(myArray);
console.log(newArray[0]);
console.log(newArray[1]);
console.log(newArray[2]);
Der Ausgang ist
10
11
13
statt
10
11
12
Was ich anders mache?
Die inner_i 2 in Ihrer dritten Schleife, das bedeutet: 'Zähler + = inner_i' gleich' 11 + 2 = 13' nur 'return Zähler + inner_i' – KRONWALLED
' Rückkehrzähler + inner_i; ' –
*" Was mache ich anders? "* Wie sollen wir das wissen? Sie haben den Code, mit dem Sie Ihren Code vergleichen, nicht angezeigt. –