# 用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