问答详情
源自:8-4 取消计时器clearInterval()

为什么setInterval(clock,1000);要省略

求解答! 为什么函数之后不能是 setInterval(clock,1000); var i=setInterval(clock,1000); 呢? 我总觉得这是两个任务,首先是一个周期性执行的计时指令;其次是一个点按钮会停止上述任务的指令。 那为什么setInterval(clock,1000);要省略呢?


<!DOCTYPE HTML>

<html>

<head>

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

<title>计时器</title>

<script type="text/javascript">

   function clock(){

      var time=new Date();                

      document.getElementById("clock").value = time;

   }

     setInterval(clock,1000);

     var i=setInterval(clock,1000);

</script>

</head>

<body>

  <form>

    <input type="text" id="clock" size="50"  />

    <input type="button" value="Stop" onclick="clearInterval(i)""  />

  </form>

</body>

</html>



提问者:懵逼的我 2016-10-29 11:59

个回答

  • stone310
    2016-10-30 20:53:45
    已采纳

    先了解:在js里,函数后面只要有()就是执行函数的意思;

    当var i=setInterval(clock,1000)这么赋值的时候,setInterval同样会执行;

    因此如果2个都写,就相当于执行了2次setInterval函数,那么后面的clearInterval只能停止一次,还剩下一次就无法停止了;

    如果还有不清楚,就回复我

  • 慕少5154646
    2016-10-29 12:34:04

    var i=setInterval(clock,1000);相当于var i;i=setInterval(clock,1000);