2011年6月17日 星期五

How To:JavaScript 類別內的計時器

JavaScript的類別寫法簡單來說有三種,但是這個不是本次的討論重點所以就不講了。

但是在類別裡怎麼作到計時器的功能呢?




function MyClass(){

}

MyClass.prototype.StartTimer = function(){
setTimeout('this.TimerHandler()',5);
//無效
}

MyClass.propertype.TimerHandler = function(){
//Do something
}


setTimeout('this.TimerHandler()',5)這個函式要是在類別這樣下就不會動了,因為當時間一到。它呼叫

this.timerHandler(),這個時this是window物件。不是類別的執行個體。

修改成這個方式即可

function MyClass(){

}

MyClass.prototype.StartTimer = function(){
var MySelf = this;
function timerHandler() {
MySelf.TimerHandler();
}
setTimeout(timerHandler, 5);
}

MyClass.propertype.TimerHandler = function(){
//Do something
}


這樣就可以順利的使用Timer在類別裡呼叫類別裡的函式。

沒有留言:

張貼留言