未捕获的类型错误...不是一个函数

时间:2017-07-10 02:41:17

标签: javascript console countdowntimer

我在控制台中练习这个简单的倒计时功能,一旦我完成编写并点击回车,代码就可以工作了,但是当我再次尝试调用它时(键入countDown();),控制台会给我这个错误信息说

  

“未捕获的TypeError:countDown不是函数”。

我将函数保存在变量countDown中,当我调用函数时,我只需键入countDown();我检查没有输入错误。我做错了什么,代码如下......

var timeLeft = 10;
var countDown = setInterval(function(){
  timeLeft--;
  console.log(timeLeft);
  if(timeLeft === 0){
    clearInterval(countDown)
    console.log("count down completed")
  }
} ,1000);

2 个答案:

答案 0 :(得分:0)

  

我将函数保存在变量countDown

不,您在该变量中保存了setInterval的结果。

setInterval返回计时器ID,而不是函数。

如果要在变量中保存函数,则需要将函数实际保存在变量中。

答案 1 :(得分:0)

我认为您应该在setInterval之外声明该函数,我在下面的示例中提供了您的参考:

var timeLeft  = 10;
var countDown  = setInterval(timer, 1000 );

function timer() {
   console.log(timeLeft);
   if (timeLeft < 1) {
      console.log('Count down completed'); 
      clearInterval(countDown);
      return;         
   } 
   timeLeft  -= 1;
}