如何使用setTimeout来模拟setInterval(包括终止循环定时器的clearInterval)?
如何使用setTimeout来模拟setInterval(包括终止循环定时器的clearInterval)?
var say = function() {
setTimeout(say, 1000)
console.log('hello world')
}
setTimeout(say, 1000)
在函数内部,有个特殊的对象 arguments
,它是一个类数组对象,包含着传入函数中的所有参数。虽然 arguments
的主要用途是保存函数参数,但这个对象还有一个名叫 callee
的属性,该属性是一个指针,指向拥有这个 arguments
对象的函数。所以你还可以像下面这样使用 setTimeout
来模拟 setInterval
。
var count = 0;
var delay = 1000;
setTimeout(function() {
console.log(count++);
setTimeout(arguments.callee, delay);
}, delay);
9 回答9.4k 阅读
6 回答5k 阅读✓ 已解决
5 回答3.6k 阅读✓ 已解决
4 回答8k 阅读✓ 已解决
7 回答10k 阅读
5 回答7.3k 阅读✓ 已解决
5 回答8.2k 阅读