JavaScript无法在另一个

时间:2016-01-10 01:03:33

标签: javascript prototype

我一直在寻找答案,但我发现的一切似乎都在说我没有做错任何事。我试图在另一个内部调用一个原型函数,但我不断得到它不是函数的错误。

由于某种原因,它只发生在一个特定的方法(tick)中,其余的方法没有问题。

这是我的代码:

Timer.prototype.getTimeRemaining = function(){
  return this.startTime - this.currentTimeTimed;
}

Timer.prototype.updateElement = function(){
  document.getElementById("clock").innerHTML = this.getTimeRemaining();
  return true;
}

Timer.prototype.tick = function(){
  if (this.running){
    this.currentTimeTimed += timePassedInMilliseconds;
  }
  this.getTimeRemaining();
  this.updateElement();
}

所以我得到的错误是在tick()中:Uncaught TypeError:this.getTimeRemaining()不是函数。

在测试更多时,我想我发现了原因:我认为这是因为从一个区间调用了tick函数。我不确定,但这是我能想到的唯一与其他功能不同的东西。但是我不知道如果它是由间隔引起的,我应该如何改变我的代码。

提前致谢。

1 个答案:

答案 0 :(得分:1)

我发现我需要在我的setInterval中使用.bind(this)。