我一直在寻找答案,但我发现的一切似乎都在说我没有做错任何事。我试图在另一个内部调用一个原型函数,但我不断得到它不是函数的错误。
由于某种原因,它只发生在一个特定的方法(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函数。我不确定,但这是我能想到的唯一与其他功能不同的东西。但是我不知道如果它是由间隔引起的,我应该如何改变我的代码。
提前致谢。
答案 0 :(得分:1)
我发现我需要在我的setInterval中使用.bind(this)。