为了账号安全,请及时绑定邮箱和手机立即绑定

计时器set

  var num=0;

  function startCount() {

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

    num=num+1;

    

  }

  setTimeout("startCount()",1000)

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

正在回答

3 回答

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


0 回复 有任何疑惑可以回复我~
#1

慕运维2603834 提问者

意思是只要存在类似num+=1的表达式,函数就会递归调用是么?
2015-10-20 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~
#1

慕运维2603834 提问者

为什么写在里面会不停的调用呢?
2015-10-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468046    人
  • 解答问题       21891    个

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

进入课程

计时器set

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信