对于循环错误,javascript闭包

对于循环错误,javascript闭包,javascript,function,Javascript,Function,为什么我的for循环不在不同的行上记录不同的i值,而不是记录5乘以6 这是代码片段。 for(var i=1;i你可以试试这个,它会有用的 for (var i = 1; i <= 5; i++) { (function(ind) { setTimeout(function(){console.log(ind);}, 1000 + (1000 * ind)); })(i) } 用于(var i=1;我感谢jignesh patel。但是你

为什么我的for循环不在不同的行上记录不同的i值,而不是记录5乘以6

这是代码片段。


for(var i=1;i你可以试试这个,它会有用的

for (var i = 1; i <= 5; i++) {
        (function(ind) {
        setTimeout(function(){console.log(ind);}, 1000 + (1000 * ind));
        })(i)
}

用于(var i=1;我感谢jignesh patel。但是你能解释一下为什么我的代码会打印5次6吗?只是为循环执行设置一个超时,不会停止。当超时完成值i为6时,循环执行完成。好吧,首先我是初学者。你的意思是如果我降低超时秒数,那么我会得到不同的值。但是我尝试了,输出是还是一样。循环firsth是完整执行的,并且i增加到6,然后timeout方法开始执行吗?