用setTimeout实现setInterval函数

纵饮孤独 提交于 2020-02-23 09:05:23

最近get一个新知识,也不算是新知识,可能是以前自己没有认真对待(对自己无语ing,si不si傻)。

废话不多说,直接来看代码吧

function setInterval(func, t){    var inter = function(){        setTimeout(inter,t);        try{            func.call(null);        }        catch(e){            throw e.toString();        }    }    setTimeout(inter,t);};
函数中有一个叫inter的内部函数,通过setTimeout来自动被调用,inter中形成了一个闭包,检查了重复的次数,调用回调函数并通过setTimeout再次调用了inter。当回调函数中出现了一个异常,inter调用将会终止,并抛出异常。(简单来说就是使用闭包+回调+setTimeout就可以实现咱们js封装好的setInterval函数啦。)咱们来测试一下:
setInterval(function(){    //执行的代码    console.log("test");},1000);
打开你的控制台,看一下吧,是不是每隔1秒就输出一个test了呢,嘻嘻。好了,小女子要去看书了,感觉自己对一些东西还是理解的不够透彻,得好好看看书补补脑了,拜~

引用资料:http://www.thecodeship.com/web-development/alternative-to-javascript-evil-setinterval/

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!