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

为什么把变量time声明放在函数体外,按start就不能进行计时?

<!DOCTYPE HTML>

<html>

<head>

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

<title>计时器1</title>

<script type="text/javascript">

 var time=new Date();

   function clock(){      

   //var time=new Date();  

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

   }  

   var i;

   function start() {

  clearInterval(i);

i=setInterval(clock,100); 

    }

function stop() {

clearInterval(i);

}

</script>

</head>

<body>

  <form>

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

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

    <input type="button" value="Start" onclick="start()" />

  </form>

</body>

</html>


正在回答

3 回答

你time 移出这个函数外面,那么这个time的赋值就只执行过一次,那就是页面加载好的那一次,而clock函数 执行的过程中调用的是没有变化过的time; 你要让没100毫秒获取的是当前的time,所以time要放入函数中;


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

因为var time=new Date();获取的是当前时间,如果想计时,就必须多次执行这行代码,每次都获取的是当前的时间,然后写入到input框中,这就是为什么要放入function 中 通过setInterval()多次触发。   如果放在函数外面,那就只能触发一次,也就谈不上时间的改变了,自然就无法计时了

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

举报

0/150
提交
取消

为什么把变量time声明放在函数体外,按start就不能进行计时?

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