Javascript で書かれたカウントダウン タイマーに取り組んでいます。本当にかなり基本的です。setInterval
タイミングの側面にのみ使用します。「クラス」を作成できるように、関数と変数を格納するプロトタイプ メソッドを使用して記述しました。
この方法でコードを呼び出します。
function testTimer() {
var newTimer = new CDTimer($("#voteTimer"),30,"");
newTimer.start();
}
以下のコードを実行するとconsole.log
、undefined
またはNaN
.
function CDTimer (target, duration, callback) {
this.target = target;
this.duration = duration;
this.callback = callback;
}
CDTimer.prototype.start = function() {
this.start = new Date().getTime();
this.interval = setInterval(this.update, 1000);
}
CDTimer.prototype.update = function() {
console.log(this.duration, this.start);
this.elapsed = this.duration - (new Date().getTime() - this.start) / 1000
if (this.elapsed < 0) {
clearInterval(this.interval);
this.callback();
}
else {
console.log(this.elapsed);
$(this.target).text(this.elapsed);
}
}
CDTimer.prototype.stop = function() {
clearInterval(this.interval);
}
私はばかげたことを見逃しているに違いない。変数とその値に何が起こっていますか?
洞察をありがとう。