673 B
673 B
importance: 5
Army of functions
The following code creates an array of shooters
.
Every function is meant to output its number. But something is wrong...
function makeArmy() {
let shooters = [];
let i = 0;
while (i < 10) {
let shooter = function() { // shooter function
alert( i ); // should show its number
};
shooters.push(shooter);
i++;
}
return shooters;
}
let army = makeArmy();
army[0](); // the shooter number 0 shows 10
army[5](); // and number 5 also outputs 10...
// ... all shooters show 10 instead of their 0, 1, 2, 3...
Why all shooters show the same? Fix the code so that they work as intended.