首页 新闻 会员 周边 捐助

js中setTimeout()在执行完可以自动销毁么?

0
[已解决问题] 解决于 2017-03-09 16:54

<script>
  var timer = setTimeout(function(){
    console.log(2);
  },1000);
  console.log(timer);  // 1
  clearTimeout(timer);
  console.log(timer);  //1
</script>

为啥弹出来的timer值始终为1?

流炎飞雪的主页 流炎飞雪 | 初学一级 | 园豆:6
提问于:2017-03-09 10:10
< >
分享
最佳答案
1

定时器使用后自己是不会清理的,都需要主动释放一下,timer = null;

你这个console出来的1目测是定时器的引用个数吧。

奖励园豆:5
名字不好起啊 | 菜鸟二级 |园豆:401 | 2017-03-09 16:20

感谢你的回答,但是timer = null 是清除不了定时器的,定时器还是得clearTimeout()来清除。另外,那个确实是timer上定时器的个数,但是我测试了下,发现不能一次性清除完。

流炎飞雪 | 园豆:6 (初学一级) | 2017-03-09 16:54
其他回答(2)
1

用完之后你要clearTimeout(timer)

心怀宇宙 | 园豆:643 (小虾三级) | 2017-03-09 10:27

感谢你的回答

支持(0) 反对(0) 流炎飞雪 | 园豆:6 (初学一级) | 2017-03-09 16:52
0

var timer = setTimeout(function(){
    console.log(2);
  },1000);

clearTimeout(timer);

夜里挑键戳灯 | 园豆:299 (菜鸟二级) | 2017-03-09 11:48

感谢你的回答

支持(0) 反对(0) 流炎飞雪 | 园豆:6 (初学一级) | 2017-03-09 16:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册