setTimeout模拟setInterval,使用闭包,且可以终止的写法
作者:互联网
function mySetInterval(fn, t){ let timer = null; function interval(){ fn(); timer = setTimeout(interval, t) } interval(); return { clear: ()=>{ clearTimeout(timer) } } } let a = mySetInterval(()=>{ console.log('xxx') },1000) //调用,该行后会自动调用开始执行 a.clear(); //终止运行
朋友字节前端面试碰到过的一个题目,网络上其他的许多都是使用全局变量或者别的。显然还是比较low的,上述是一个使用闭包的写法,并使用clearTimeout提供一个停止功能。
标签:闭包,function,setInterval,interval,clearTimeout,timer,let,setTimeout 来源: https://www.cnblogs.com/zzzlight/p/16521975.html