我正在使用JavaScript編寫倒數計時器。相當基本。在時間方面只使用setInterval
。我使用存儲函數和變量的原型方法編寫它,所以我可以創建一個「類」。Javascript「Class」via Prototypes - 變量未定義
我以這種方式調用代碼。
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);
}
我一定錯過了一些愚蠢的東西。我的變量及其價值發生了什麼?
感謝您的洞察力。
你期望'this'指什麼?你還沒有用你的構造函數創建任何對象。 –