以下方法的使用有什么区别?
第一种方法:
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);
}
第二种方法:
function createTimeoutFunction(e){
setTimeout(function() {
console.log(e);
}, 1000);
}
for(var i = 0; i < 10; i++) {
createTimeoutFunction(i);
}
我是节点 js 和使用闭包的新手。尽管两种方法都返回相同的输出,但第二种方法运行时出错。我不明白为什么我们需要像第一种方法一样使用两个循环。我们不能像第二种方法一样执行吗?