使用setTimeout时向javascript中的函数传递值
我试图在一个循环中设置几个超时,其中setTimeout的参数函数使用不同的值(取决于循环索引)作为参数。这是一个简化的示例:使用setTimeout时向javascript中的函数传递值,javascript,loops,parameters,arguments,settimeout,Javascript,Loops,Parameters,Arguments,Settimeout,我试图在一个循环中设置几个超时,其中setTimeout的参数函数使用不同的值(取决于循环索引)作为参数。这是一个简化的示例: for(i=0; i<5; i++) { var m = setTimeout( function () {console.log(i)}, (i+1)*2000 ); } for(i=0;i如果您愿意限制对现代web浏览器的支持(即不是IE 9和更早版本),则以下操作将有效: for(i=0; i<5; i++) { v
for(i=0; i<5; i++)
{
var m = setTimeout( function () {console.log(i)}, (i+1)*2000 );
}
for(i=0;i如果您愿意限制对现代web浏览器的支持(即不是IE 9和更早版本),则以下操作将有效:
for(i=0; i<5; i++)
{
var m = setTimeout( function (i) {console.log(i)}, (i+1)*2000, i );
}
for(i=0;i您需要一个包装函数来创建一个闭包,并在迭代时保持i
的值:
for(i=0; i<5; i++) {
(function(timeout) {
var m = setTimeout( function () {console.log(timeout)}, (timeout+1)*2000 );
})(i)
}
(i=0;i)的