このコードを実行してみたら、不思議な結果がでました
function printFive() {
for (var i = 0; i < 5; i++) {
setTimeout(function () {
console.log(i);
}, i * 1000);
}
}
printFive();
こうすれば、
0
1
2
3
4
がゆっくり出力されると思うと、実際は
5
5
5
5
5
がでました。
jsfiddle
どうして0
から4
までループしているのに、5
ばかりが出てくるんですか。どうすれば思い通りになりますか。