setTimeout未按要求工作
setTimeout not working as required
本文关键字:工作 setTimeout 更新时间:2024-03-06
下面是我的代码
并且每次1秒后显示6000 6000 6000 6000
但我想使用setTimeout()显示1000 2000 3000 4000 5000
小提琴:https://jsfiddle.net/himavicii/jg2uvu1j/
var i=0;
for(i=1000;i<6000;i+=1000)
{
setTimeout(function(){v(i)},i);
}
function v(h)
{
document.write(h+' ');
}
发生这种情况是因为所有超时都引用了相同的i
变量。将超时包裹在一个闭包中:
for(i=1000;i<6000;i+=1000)
{
(function(i){
setTimeout(function(){v(i)},i);
})(i);
}
这会将i
作为参数传递给匿名函数,并且函数会创建一个新的作用域,因此变量受到保护。
var i=0;
for(i=1000;i<6000;i+=1000)
{
timeoutFun(i);
}
function timeoutFun(t){
setTimeout(function(){
v(t);
},t);
}
function v(h)
{
document.write(h+' ');
}
https://jsfiddle.net/shadiq_aust/s4078702/
相关文章:
- 刷新后,setTimeout将工作或不工作
- 使setInterval和setTimeout工作时出现问题
- 为什么我需要在setTimeout中有匿名函数才能使此代码工作
- window.open没有't在设置setTimeout内工作-弹出窗口被阻止
- 如何使setTimeout脚本在html表单中正常工作
- SetTimeout延迟未按jquery幻灯片中的预期工作
- setTimeout()在JavaScript中是如何工作的
- Javascript-为什么不是't此setTimeout函数正在工作
- setInterval工作setTimeout不工作;t
- setTimeout未按要求工作
- 为什么javascript setTimeout()不能在循环中工作
- setTimeout方法的工作原理很奇怪
- 变量在Javascript中是如何工作的?可以在setTimeout期间更改变量值
- Javascript:addEventListener 仅在 setTimeout 中工作
- 如何删除 settimeOut 的队列工作
- 在工作线程中使用 setTimeOut
- 无法在 javascript 中获取 setTimeout 以正常工作
- 在循环中调用 setTimeout 未按预期工作
- setTimeout() 如何在 JS 上工作
- JavaScript代码首先使用setTimeout工作,但随后崩溃或不起作用