leo列

导航

setTimeout和setInterval计时器的参数问题

要实现倒计时的问题,用setTimeout和setInterval都可以实现,用setInterval函数一般会这样写:

var count = 100;
function a(count)
{
       count--;
}

setInterval(a,1000,count);

用setTimeout会这样写:

var count = 100;
function a(count)
{
       count--;
       setTimeout(a,1000,count);
}

乍一看,好像这两个函数效果是一样的,都是1秒钟执行一次,但是实际上的运行结果是有不同的,第一种写法,count运行后始终为99,因为这个函数的意思就是,每隔1秒,把100-1

而第二种写法的就不会这样,他是从100开始,每隔一秒减1,他传入的count是在变化的,所以,如果涉及到重复执行函数的参数变化的话,最好用setTimeout来写。

posted on 2012-11-06 15:32  leo列  阅读(380)  评论(0编辑  收藏  举报