计时器setTimeout中的一点小问题

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

花不谢

2016-03-02 09:33

为什么要在12和14行分别填入:setTimeout("starCount()",1000);才可以???仅仅在12或者14是不行的

写回答 关注

2回答

  • 十万猛虎下画山
    2016-03-02 11:29:28
    已采纳
    //一开始我也没想明白,后来仔细看看 执行顺序 我想明白了,答案如下  按顺序看...
    
    <script type="text/javascript">
      var num=0;
      //  1.函数没有调用前 是不存在的 没有创建的,这个你得想明白 
      function startCount() {  //  3.被调用了       //  6. 被内部setTimeout 调用
        document.getElementById('count').value=num; //4.执行 第一步   7.执行 第一步 
        num=num+1;                                  //4.执行 第二步    7.执行 第二步 
          setTimeout("startCount()",1000); /*5.执行 第三步  1秒后调用 startCount函数   8.执行 第三步  1      秒后调用 startCount函数  形成循环*/
      }
     setTimeout("startCount()",1000);//   2.这段的作用是1秒后调用 startCount函数
     
     /*9. 其实这个了写成立即调用也能达成效果 startCount();  函数外这个setTimeout("startCount()",1000) 误导了大家,产生了疑惑,主要原因还是基础不扎实。*/
     
     /*10.个人粗浅之见,如有错误,请温柔指正,不胜感激!*/
      
    </script>


  • yyys
    2016-03-02 09:50:30

    <script type="text/javascript">

      var num=0;

      function startCount() {

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

        num=num+1;

        setTimeout("startCount()",1000) ;

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

      }

      

    </script>

    我的这样写是可以的 你试试

JavaScript进阶篇

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

467385 学习 · 21877 问题

查看课程

相似问题