如何使用setTimeout来模拟setInterval(包括终止循环定时器的clearInterval)?

如何使用setTimeout来模拟setInterval(包括终止循环定时器的clearInterval)?

阅读 5.3k
4 个回答
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

var count = 0;
var delay = 1000;
setTimeout(function() {
    console.log(count++);
    setTimeout(arguments.callee, delay);
}, delay);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏