添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

需要清理的,不过楼上的写法是错误的,clearTimeout方法才是清除定时器的方法,而将返回的句柄的值设置为false只是更改其引用,使原有的句柄释放,虽然会被GC回收但时间不确定,这样做比较危险。

正确的做法是使用clearTimeOut(句柄)释放定时器。否则楼主的代码会因为无限递归导致堆栈溢出,下面是我给你写的代码(已经验证):

var timeHandle = null; function testTimeout () { console.log('1111') console.log(timeHandle = setTimeout(testTimeout, 3000)); //调用代码清除定时器 clearTimeout(timeHandle); 查到一篇文章https://blog.csdn.net/qq_38603437/article/details/89503259,不知道讲的是否合理。 如果不考虑停止定时器的话,应该在每次 setTimeout 之前调用 clearTimeout ,防止一直生成 setTimeout 对象。