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

问下为什么左边的列子 ,在function外面还加了一个setTimeout(timedCount,1000); 加不加有什么区别

<!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>


正在回答

3 回答

1、这是在用setTimeOut来实现setInterval函数。两个函数的区别就是setTimeOut只执行一次,简单来说就是延迟1秒执行函数timedCount,且只执行一次。而setInterval则是每隔多少时间就执行一次函数,是循环的,如果不阻止就会一直执行下去。

2、在你的代码中可以看到有两个function,函数是需要调用才可以用的,外边的那个setTimeOut就是在调用timedCount函数,而timedCount函数中又进行了一次自身的调用,说是递归你可能就会明白了。实际上外面的函数只调用了一次,可是函数内部又进行了对自身的调用,从而形成了循环。

3、个人理解~~

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

Beckybei

很清楚 非常感谢
2015-04-23 回复 有任何疑惑可以回复我~
#2

慕前端7121920 提问者

非常感谢!
2016-01-12 回复 有任何疑惑可以回复我~

正在纠结,看到这个秒懂,感谢感谢

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

外边setTimeout(timedCount,1000); 这个只是初始化

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

举报

0/150
提交
取消

问下为什么左边的列子 ,在function外面还加了一个setTimeout(timedCount,1000); 加不加有什么区别

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