以下の方法の使用の違いは何ですか?
最初の方法:
for(var i = 0; i < 10; i++) {
(function(e){
setTimeout(function() {
console.log(e);
}, 1000);
})(i);
}
for(var i = 0; i < 10; i++) {
createTimeoutFunction(i);
}
2番目の方法:
function createTimeoutFunction(e){
setTimeout(function() {
console.log(e);
}, 1000);
}
for(var i = 0; i < 10; i++) {
createTimeoutFunction(i);
}
私はノードjsが初めてで、クロージャーを使用しています。どちらのメソッドも同じ出力を返しますが、2 番目のメソッドはエラーで実行されます。最初の方法のように 2 つのループを使用する必要がある理由がわかりません。2番目の方法のように実行することはできませんか?