Javascript中的setInterval和setTimeout的使用总结

来源:互联网 发布:mysql入门 pdf 编辑:程序博客网 时间:2024/05/21 09:30

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)来返回一个不带参数的函数句柄,从而实现了参数传递的功能。





0 0
原创粉丝点击