问答详情
源自:8-5 计时器setTimeout()

计时器set

  var num=0;

  function startCount() {

    document.getElementById('count').value=num;

    num=num+1;

    

  }

  setTimeout("startCount()",1000)

不是说只执行一次么?为什么会一直不停的计数?难道因为“num+=1”那也应该执行一次啊?看不懂额。。

提问者:慕运维2603834 2015-10-19 22:01

个回答

  • 忘性最大的人
    2015-10-20 12:48:17

    这是一个递归的过程啊,就相当于你在一个函数startCount()中执行setTimeout("startCount()",1000)然后又一次调用了startCount()然后它又继续执行这个函数中的setTimeout("startCount()",1000)。。。如此循环往复,而里面定义的document.getElementById('count').value=num;num=num+1;就会随着每一次函数的执行而不断的改变了,好好清理一下思路吧。


  • 慕运维2603834
    2015-10-20 09:08:06

    为什么写在里面会不停的调用呢?

  • 忘性最大的人
    2015-10-19 22:35:57

    按照你写的就是只执行一次的,要是在函数里面再加入一句setTimeout("startCount()",1000)才会在函数中递归调用startCount() 从而使得文本域中输入出的函数值一直增加,相当于一个计时器的效果了