实现setInterval和clearInterval

实现setInterval

思路:递归

function imitateSetInterval (func, milliseconds, count) {
 var temp = [count];
 function interval () {
   if (typeof count  ===  'undefined' || temp[0] -- > 0) {
     setTimeout(interval, milliseconds);
     try {
       func();
     }catch (e) {
      throw e.toString();
     }
   }
  }
 setTimeout(interval, milliseconds);
 return temp;
}

实现clearInterval

思路:改变imitateSetInterval返回的引用

function imitateClearInterval (temp) {
  temp[0] = 0;
}

使用

var i = 0;

var terval = imitateSetInterval(function () {
 console.log(i++);
}, 1000, 100)

imitateClearInterval(terval)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容