定时器实现javascript的重复和延期执行

window.setTimeout()和window.setInterval()是window对象提供实现定时效果的两个方法。前者是使在指定时间后执行,后者是每过指定时间就执行一次。简单代码如下:

<script>

function helloWorld()

{

     alert("Hello World!");

}

使用函数名事例:

window.setTimeout(helloWorld,3000);//页面打开后3秒钟弹对话框。

window.setInterval(helloWorld,3000);

使用字符串事例:

window.setTimeout("helloWorld()",3000);//页面打开后3秒钟弹对话框。

window.setInterval("helloWorld()",3000);

</script>

如果要取消执行,则使用window.clearTimeout(window.setTimeout(helloWorld,3000))和window.clearInerval(window.setInterval(helloWorld,3000))。

 

不管是window.setTimeout还是window.setInterval,在使用函数名作为句柄是都不能带参数,而使用字符串形式则可以。

var name="China";

function hello(_country)

{

     alert("Hello,"+_country);

}

window.setInterval("Hello(name)",3000);

那有没有方法来实现函数名作为句柄却可以带参数呢,因为我们知道有些情景必须使用函数名。下面就来实现这一功能:

<script>

var Name="China";

function hello(_country)

{

     alert("Hello,"+_country);
}

function HelloChina(_country)

{

     return function(){hello(_country);}

}

window.setTimeout(HelloChina(Name),3000);

</script>

posted @ 2008-07-21 14:27  草市江田  阅读(310)  评论(0)    收藏  举报