このインターバル関数を見つけて、自分のウェブサイトで使用しています。ただし、間隔から合計期間を取得する必要があります。timer.total_duration を呼び出して合計時間を取得できるように変更しようとしましたが、変更されたコードを実行しようとすると、「Uncaught TypeError: number is not a function」というエラーが表示されます。変更された関数は次のとおりです。
function interval(duration, fn) {
this.baseline = undefined
this.total_duration = 0.0
this.run = function () {
if (this.baseline === undefined) {
this.baseline = new Date().getTime()
}
fn()
var end = new Date().getTime()
this.baseline += duration
var nextTick = duration - (end - this.baseline)
if (nextTick < 0) {
nextTick = 0
}
this.total_duration += nextTick //line giving the error
(function (i) {
i.timer = setTimeout(function () {
i.run(end)
}, nextTick)
}(this))
}
this.stop = function () {
clearTimeout(this.timer)
}
}
このエラーが発生する理由と、合計時間を取得できるように修正する方法はありますか?