JavaScript可以't调用另一个内部的原型函数

JavaScript Can't call prototype function inside another

本文关键字:内部 另一个 原型 函数 调用 可以 JavaScript      更新时间:2023-09-26

我一直在寻找答案,但我发现的一切似乎都表明我没有做错任何事。我试图在另一个函数中调用一个原型函数,但我一直错误地认为它不是一个函数。

由于某些原因,它只发生在一个特定的方法(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()中:未捕获类型错误:this.getTimeRemaining()不是函数。

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

提前谢谢。

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