自定义setInterval

function mySetinterval(fn, timeout) {
    var timer = {
        id: null
    }

    function settimefn() {
        timer.id = setTimeout(function () {
            fn();
            settimefn()
        }, timeout);
    }
    settimefn();


    return timer;//缺点是返回对象,有啥更好的
}

function myClearTimeout(timer) {
        //还需要再判断下timer,不想写
    clearTimeout(timer.id);
}
//使用
var timer = mySetinterval(function () {
    console.log('111')
}, 1000)

var timer1 = mySetinterval(function () {
    console.log('222')
}, 1000)
setTimeout(() => {
    myClearTimeout(timer)
}, 5000);

你可能感兴趣的:(自定义setInterval)