为什么函数里面的setTimeout会导致函数不断执行,不是只执行一次嘛

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

百兽凯多00

2017-02-17 19:25

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>计时器</title>

</head>

<script type="text/javascript">

  var num=0;

  function startCount() {

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

    num=num+1;

    setTimeout("startCount()",1000);

  }

  

</script>

<body>

<form>

<input type="text" id="count"/>

<input type="button" value="go" onClick="startCount()"/>

</form>

</body>

</html>

为什么函数里面的setTimeout会导致函数不断执行,不是只执行一次嘛


写回答 关注

5回答

  • 慕数据1008917
    2017-02-22 10:33:20
    已采纳

    我是这么理解的 1.函数被调用,所以开始走函数里面的语句 结果显示0 (此时因为num=0)

                               2.函数里面走到语句setTimeout,意思就是过1s之后再调用startCount()

                               3.然后函数再被调用,又开始走函数里面的语句,结果显示 (num+1)的结果。

    然后一直2,3,2,3,2,3,2,3步骤重复


    但是我有个问题。。。为什么我没有写onclick,没有任何最初调用函数的语句,他就可以直接开始计数了???

    慕数据100... 回复百兽凯多00

    我今天又试了试。。好像确实是

    2017-02-24 09:16:59

    共 4 条回复 >

  • 慕粉1440489053
    2017-03-28 01:14:40

    每1s调用自身一次 不停的递归

  • CodingJWL
    2017-02-17 20:44:59

    因为你的 setTimeout("startCount()",1000);里面调用了startCount(),属于递归调用,因此才不停的被执行。。。

  • 紫辰96
    2017-02-17 20:44:56

    setTimeout("startCount()",1000);//1000ms后再次调用startCount()

  • woniu8hungliniao
    2017-02-17 20:44:30

    buzhidao




JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题