问答详情
源自:2-1 js实现延迟切换

定时器问题,求大神解答,谢谢!!!

cleartimeout(timer)

timer=null

清除了 为什么还要把timer=null呢?

提问者:慕妹0692581 2017-04-03 19:50

个回答

  • 薛定谔的量子猫
    2017-04-04 18:02:10
    已采纳

    因为timer接收到的是setTimeout返回的一个整数类型的值,clearTimeout()是根据这个值去清除计时器,计时器清除后timer变量的值依旧不变,所以最好重新赋值为NULL;setInterval也是同样道理

  • 薛定谔的量子猫
    2017-04-04 21:51:47

    具体你们可以在控制台试一下这段代码,观察一下timer的变化。

    var timer=null;
    console.log('初始timer: '+timer);
    setInterval(function(){
    	timer=setTimeout(function(){
            console.log('当前 timer: '+timer);
            clearInterval(timer);
            console.log('清除之后 timer: '+timer);
        },1000);
    },2000);