setTimeout疑问

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

天窗的蚂蚁

2016-02-24 10:09

<script type="text/javascript">
var num=0;
function numCount(){
 document.getElementById('txt').value=num;
 num=num+1;
 setTimeout("numCount()",1000);
 }
</script>
setTimeout不是只能执行一次吗?为什么这样设置后,结果里的数可以自己从0开始,自动往上加,不停呢?还有,把setTimeout("numCount()",1000);换成setInterval("numCount()",1000);后,输入框的里数不是按照“0,1,2,3...."变化,而是“1,3,5,7,11,20...”这样的变化呢?


写回答 关注

1回答

  • SwordEdge
    2016-02-24 10:21:45

    setTimeout固然是执行一次,但是你调用函数的时候是调用了numCount(),而它里面有setTimeout("numCount()",1000),所以就形成了一个递归。

    从而出现从0开始,并且不停地自动往上加1.

JavaScript进阶篇

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

468191 学习 · 21891 问题

查看课程

相似问题