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

为什么这里的i 是在函数里面被赋新值,但是在下面的函数里还是可以被调用去清除计时?

<!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;
  var i;
  function startCount(){
    document.getElementById('count').value=num;
    num=num+1;
    i=setTimeout("startCount()",1000);
  }
  function stopCount(){
  clearTimeout(i);
  }
</script>
</head>
<body>
  <form>
    <input type="text" id="count" />
    <input type="button" value="Start"  onclick="startCount()"/>
    <input type="button" value="Stop" onclick="stopCount()"/>
  </form>
</body>
</html>


正在回答

2 回答

我猜你是觉得i的新值作用域只在第一个函数里。JS作用域跟C,C++什么的差别有点大,具体可以查查JS作用域与作用域链。

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

i=setTimeout("startCount()",1000);这不是赋值

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

廿岁公公Dawn 提问者

谢谢!
2016-04-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么这里的i 是在函数里面被赋新值,但是在下面的函数里还是可以被调用去清除计时?

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