为什么页面写了setTimeout要在页面销毁时清除这个timeout?

vue、react等创建的单页面应用,切换路由的时候并不会刷新页面,定时器也不会被销毁,所以需要在beforeDestroy中手动清除;

用setTimeout实现setInterval?

var t = null;
var count = 0;
function time(){
    clearTimeout(t);
    count ++;
    t = setTimeout(time, 1000);
}
t = setTimeout(time, 1000);
var t = null;
function f(fn, time){
    var _this = this;
    var args = [...arguments].slice(2)
    function setFun(){
        clearTimeout(t);
        t = setTimeout(function(){
            setFun();
            fn(args);
        }, time)
    }
    setFun();
}