# 用setTimeout实现setInterval

function mySetInterval() {
  mySetInterval.timer = setTimeout(() => {
    arguments[0]() // arguments[0]是传入的函数,如() => {console.log('滴答滴答……')},这里拿到这个函数直接执行
    mySetInterval(...arguments) // 递归
  }, arguments[1]) // arguments[1]是传入的时间,如5000
}

mySetInterval.clear = function () {
  clearTimeout(mySetInterval.timer)
}

mySetInterval(() => {
  console.log('滴答滴答……')
}, 1000)

setTimeout(() => {
  mySetInterval.clear() // 5s 后清理
}, 5000)