计时器set

来源:8-5 计时器setTimeout()

慕运维2603834

2015-10-19 22:01

  var num=0;

  function startCount() {

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

    num=num+1;

    

  }

  setTimeout("startCount()",1000)

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

写回答 关注

3回答

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

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


    慕运维260...

    意思是只要存在类似num+=1的表达式,函数就会递归调用是么?

    2015-10-20 15:50:17

    共 1 条回复 >

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

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

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

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

    慕运维260...

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

    2015-10-20 09:08:28

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468060 学习 · 21891 问题

查看课程

相似问题