# 用setTimeout实现setInterval
递归实现,每隔一秒打印一次名字
let timer = null
    function mockSetInterval(fn, delay, ...args) {
      const recur = function () {  // 定义一个递归函数
        timer = setTimeout(() => {
          fn.apply(this, args)
          recur() // 递归调用
        }, delay)
      }
      recur() // 第一次调用
    }
    mockSetInterval((name) => {
      console.log(name);
    }, 1000, 'janet')
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14