问答详情
源自:8-6 取消计时器clearTimeout()

为什么会这样呢

为什么会这样呢

提问者:飘移的鼻毛 2015-09-27 11:36

个回答

  • 西地锦
    2015-09-27 12:02:23
    已采纳

    setInterval 本身每隔1000ms会调用一下startCount方法,startCount方法自己每隔2000ms也会调用一下自身。

    如此就会有以下的步骤:

    第一个数:0,这个setInterval第一次调用的时候的num值

    第二个数:1,这是setInterval第二次调用的时候的num值

    第三个数:3,这是第一次setInterval调用时startCount里的setTimeout执行num+1=2 ,与第三次setInterval执行的num+1=3

    第四个数:5,这是第二次setInterval调用时startCount里的setTimeout执行num+1=4,与第三次setInterval执行的num+1=5

    ...........

    后面会有越来越多的setInterval与setTimout基本在同一时间执行,所以num的值会增加得越来越快~~~~

    答主数学不好,具体怎样增加,你可以计算一下公布给大家哦~


  • 兰兰蓝
    2015-10-27 10:27:16

    为什么暂停不了的?

  • 西地锦
    2015-09-27 12:04:05

    以下是w3c的标准实例:

    <html>
    <head>
    <script type="text/javascript">
    var c=0
    var t
    function timedCount()
      {
      document.getElementById('txt').value=c
      c=c+1
      t=setTimeout("timedCount()",1000)
      }
    function stopCount()
      {  clearTimeout(t)
      }
    </script>
    </head>
    <body>
    
    <form>
    <input type="button" value="Start count!" onClick="timedCount()">
    <input type="text" id="txt">
    <input type="button" value="Stop count!" onClick="stopCount()">
    </form>
    
    </body>
    </html>