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

设计计数器

 var num=0;

  function startCount() {

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

    num=num+1;

    setTimeout("startCount()",1000);

  }

    setTimeout("startCount()",1000);

设计计数器为什么要调用两次    setTimeout("startCount()",1000);

正在回答

1 回答

因为上面定义的是一个方法(startCount), 必须调用才会执行,如果下面直接调用就会立即执行,也就是会在第0秒时,计数器就会加1,为了保存在第一秒时执行,所以就在最后一行有了一个setTimeout("startCount()",1000);因为setTimeout是执行一次后就结束,所以就会在startCount方法里面再调用一下自己(递归调用),就可以一直循环调下去,但为了保证在一秒后执行,所以就又有了一个setTimeout("startCount()",1000);

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

消失de眼瞳 提问者

原来是 这样,非常感谢!!!
2015-11-12 回复 有任何疑惑可以回复我~
#2

qq_甘蔗_0

那为什么不能直接用: startCount();调用,而要用延时器来调用? 我试了,普通的函数可以直接用 函数名();调用 这个是递归函数,不能用 startCount();调用,却可以用延时器来调用时怎么回事?求大神回复...
2015-11-14 回复 有任何疑惑可以回复我~
#3

李晓健 回复 qq_甘蔗_0

用定时器是为了延迟一S执行,他是每隔1秒,计数器加1,如果直接调用的话就会立刻执行,一S内数字就会增加了很大,并不想要的结果。
2015-11-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

设计计数器

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