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

定义的位置

var num=0;
  var i;
  function startCount(){
    document.getElementById('count').value=num;
    num=num+1;
    i=setTimeout("startCount()",1000);
  }
  function stopCount(){
      clearTimeout(i);
  
  }
var num=0;
 
  function startCount(){
    document.getElementById('count').value=num;
    num=num+1;
   var i=setTimeout("startCount()",1000);
  }
  function stopCount(){
      clearTimeout(i);
  
  }

这两个定义 i的方式,区别有什么,为什么的出来的结果不一样

提问者:箫闻 2017-03-22 10:34

个回答

  • 学习js
    2017-03-22 10:41:25
    已采纳

    一个全局变量,一个局部变量,你下面一种的方法,在停止的stopCount()方法里会找不到i变量,所以上面的方法才正确

  • 慕粉1440489053
    2017-03-28 01:17:20

    函数体内的局部变量外部无法直接访问