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

关于setTimeout()的疑惑,请看下面官方给的代码!

关于setTimeout()的疑惑,请看下面官方给的代码!

慕村5492868 2017-08-23 16:56:48
<!DOCTYPE HTML><html><head><script type="text/javascript">  var num=0,i;  function timedCount(){    document.getElementById('txt').value=num;    num=num+1;    i=setTimeout(timedCount,1000);  }    setTimeout(timedCount,1000);  function stopCount(){    clearTimeout(i);  }</script></head><body>  <form>    <input type="text" id="txt">    <input type="button" value="Stop" onClick="stopCount()">  </form></body></html>setTimeout()这个方法不是延迟函数表达式的执行吗,我知道timeCount()函数的外部用  setTimeout(timedCount,1000);是让timeCount()这个函数1秒后执行,但是并没有看出这个函数怎么就让num循环叠加了,是因为内部引用了    i=setTimeout(timedCount,1000);吗。但这个又是给计数停止提供参数i啊,怎么回事啊!num是是怎么循环起的啊?
查看完整描述

1 回答

已采纳
?
qq_安安_17

TA贡献49条经验 获得超52个赞

var num=0,i;
function timedCount(){
    document.getElementById('txt').value=num;
    num=num+1;     /*num每次+1*/
    i=setTimeout(timedCount,1000);    /*这里运用递归,实现循环1秒执行一次*/
}
setTimeout(timedCount,1000);    /*调用定义的timedCount()函数,延迟1秒执行*/

function stopCount(){
    clearTimeout(i);    /*停止计时*/
}

你可以专门看递归,函数不断的调用函数本身,实现循环,在其他语言也常见的~~

查看完整回答
2 反对 回复 2017-08-23
  • 1 回答
  • 0 关注
  • 1417 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信