setTimeout(interval, timeout); } 还可以加个控制器,控制是否继续执行 function mySetInterval(fn, timeout) { // 控制器,控制定时器是否继续执行 var timer = { flag: true, }; // 设置递归函数,模拟定时器执行。 function interval() { if (timer.flag) { fn(); setTimeout(interval, timeout); ...
具体实现思路为,通过递归函数不断执行 setTimeout,以此模拟 setInterval 的功能。每执行一次 setTimeout,就检查当前执行栈是否为空,为空时,从队列中取出并执行函数,如此循环,达到模拟 setInterval 的目的。
参考实现 思路是使用递归函数,不断地去执行 setTimeout 从而达到 setInterval 的效果 简单实现 function mySetInterval(fn, timeout) { function interval() { fn(); setTimeout(interval, timeout); } setTimeout(interval, timeout); } 还可以加个控制器,控制是否继续执行 function mySetInterval(fn, tim...