如何使用setTimeout来模拟setInterval(包括终止循环定时器的clearInterval)?
function _interval( // do something window.setTimeout(_interval, 1000); ) _interval();
var say = function() { setTimeout(say, 1000) console.log('hello world') } setTimeout(say, 1000)
var a = function() { setTimeout(a, 1000) }; a();
在函数内部,有个特殊的对象 arguments,它是一个类数组对象,包含着传入函数中的所有参数。虽然 arguments 的主要用途是保存函数参数,但这个对象还有一个名叫 callee 的属性,该属性是一个指针,指向拥有这个 arguments 对象的函数。所以你还可以像下面这样使用 setTimeout 来模拟 setInterval。
arguments
callee
setTimeout
setInterval
var count = 0; var delay = 1000; setTimeout(function() { console.log(count++); setTimeout(arguments.callee, delay); }, delay);
在函数内部,有个特殊的对象
arguments
,它是一个类数组对象,包含着传入函数中的所有参数。虽然arguments
的主要用途是保存函数参数,但这个对象还有一个名叫callee
的属性,该属性是一个指针,指向拥有这个arguments
对象的函数。所以你还可以像下面这样使用setTimeout
来模拟setInterval
。