var timer=null;
var sTime=500;
timer=setInterval(function(){
alert('a');
sTime+=500;
alert(sTime);
},sTime)alert(sTime) 每次都是逐渐增大,但是每次重新执行的间隔都没有变??
3 回答
已采纳
慕男婶
TA贡献98条经验 获得超73个赞
是的。间隔并不会变。
var timer=null; var sTime=500; var fn = function(){ alert('a'); sTime+=500; alert(sTime); } // setInterval只是一个函数,调用一次就执行一次,所以第一次调用时 // sTime = 500,那么间隔就是500毫秒,虽然你在fn里改变了sTime的大小,但是setInterval并不会 // 重复执行,重复执行的是fn,第一次调用setInterval就决定了其间隔是500毫秒 var timer=setInterval(fn,sTime)
你的理解错误之处在于:你认为setInterval函数会500毫秒执行一次。正确情况其实是fn每隔500毫秒执行一次。setInterval只会执行一次,因为你只调用了一次。。
李晓健
TA贡献1036条经验 获得超461个赞
因为你的定时器一开就被启动起来了呀。又不一直不停的启动,所以你后面的值就没用了,想达到你的那种效果,你可以试试用setTimeout来启动定时,然后用递归调用就可以达到setInterval的一直执行的效果。
添加回答
举报
0/150
提交
取消