SOURCE

// setTimeout 实现 setInterval
let timer = null;
function myInterval(cb, delay) {

    timer = setTimeout(()=>{
        interval(cb, delay)
    }, delay); //触发执行

}

function interval(fn, delay) {
    fn();
    clearTimeout(timer)
    timer = setTimeout(()=>{
        interval(fn, delay)
    }, delay);  // 递归执行
}

myInterval(() => { console.log('I am Jack') }, 1000)
console 命令行工具 X clear

                    
>
console