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

来源:8-6 取消计时器clearTimeout()

慕前端7121920

2015-04-17 15:53

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

  • 闹小志
    2015-04-17 16:36:56
    已采纳

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

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

    3、个人理解~~

    慕前端712...

    非常感谢!

    2016-01-12 00:28:03

    共 2 条回复 >

  • 心语紫朦胧
    2016-04-14 18:50:06

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

  • 学会坚持
    2015-04-17 16:21:49

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

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题