您的位置:首页 > Web前端 > JavaScript

Javascript中的setInterval和setTimeout的使用总结

2014-05-07 14:01 447 查看

setInterval

定义和用法

setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

语法

setInterval(code,millisec[,"lang"])

参数描述
code必需。要调用的函数或要执行的代码串。
millisec必须。周期性执行或调用 code 之间的时间间隔,以毫秒计。

返回值

一个可以传递给 Window.clearInterval() 从而取消对 code 的周期性执行的值。

setTimeout

定义和用法

setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。

语法

setTimeout(code,millisec)

参数描述
code必需。要调用的函数后要执行的 JavaScript 代码串。
millisec必需。在执行代码前需等待的毫秒数。

提示和注释

提示:setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。


clearInterval

定义和用法

clearInterval() 方法可取消由 setInterval() 设置的 timeout。

clearInterval() 方法的参数必须是由 setInterval() 返回的 ID 值。

语法

clearInterval(id_of_setinterval)

参数描述
id_of_setinterval由 setInterval() 返回的 ID 值。

总结:

1、setInterval和setTimeout的回调函数的this是window对象;

2、setInterval和setTimeout的回调函数没有办法传递参数;

扩展:

实现:setInterval和setTimeout给回调函数传递参数

一、采用字符串形式:——(缺陷)参数不能被周期性改变 

setInterval("foo(id)",1000);

二、匿名函数包装 (推荐)

window.setInterval(function() {
foo (id);
}, 1000);


这样就可以周期性执行foo(id)这个函数,而且把变量id传递进去;

三、定义返回无参函数的函数

function foo(id){
alert(id);
}
function _foo(id){
return function(){
foo(id);
}
}
window.setInterval(_foo(id),1000);


这里定义了一个函数_foo,用于接收一个参数,并返回一个不带参数的函数,在这个函数内部使用了外部函数的参数,从而对其调用,不需要使用参数。

在 window. setInterval函数中,使用_foo(id)来返回一个不带参数的函数句柄,从而实现了参数传递的功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript