JavaScript 的定时器函数有 setTimeout 和 setInterval 这两个。setTimeout 函数用于延迟若干时间后执行某个函数或某段代码,而 setInterval 函数用于每隔一段时间执行某个函数或某段代码。它们的参数如下:
var timeoutID = window.setTimeout(func, delay[, param1, param2, ...]); // 执行某个函数 var timeoutID = window.setTimeout(code, delay); // 执行某段代码
var intervalID = window.setInterval(func, delay[, param1, param2, ...]); // 执行某个函数 var intervalID = window.setInterval(code, delay); // 执行某段代码
其中第1种用法中 func 是个变量,指明某个函数的名称,它的参数放在后面的可选参数中;而第2种用法中 code 是个字符串,指明某段代码的内容,参数可以直接写在代码里面。第1种用法将在当前的作用域中执行该函数,而第2种用法将在全局作用域中用 eval() 执行该代码,因此一般不推荐使用。
利用上面函数的返回值 timeoutID 和 intervalID,我们可以取消该定时器。例如
window.clearTimeout(timeoutID)
window.clearInterval(intervalID)
参考资料:
[1] Document Object Model (DOM) - window.setTimeout
[2] Document Object Model (DOM) - window.setInterval
[3] Document Object Model (DOM) - window.clearTimeout
[4] Document Object Model (DOM) - window.clearInterval