此循环在一个函数中,并且从10开始递减计数,但是,如果我警告在i函数中使用setV传递的参数,则实际上它会递增计数!

for (var i=10;i>0;i--){
setTimeout('setV('+i+',"Out")',100);
}


function setV(c,t){
alert(c);
}

最佳答案

所有setS都被编程为同时执行(在瞬时循环执行后100毫秒执行),但顺序不确定(请参见the spec)。
你可能想要

for (var i=10;i>0;i--){
   setTimeout('setV('+i+',"Out")',100*(11-i));
}

关于javascript - Javascript setTimeout参数从循环反转,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13533584/

10-12 01:32