但是在類別裡怎麼作到計時器的功能呢?
function MyClass(){
}
MyClass.prototype.StartTimer = function(){
setTimeout('this.TimerHandler()',5);
//無效
}
MyClass.propertype.TimerHandler = function(){
//Do something
}
}
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
}
}
MyClass.prototype.StartTimer = function(){
var MySelf = this;
function timerHandler() {
MySelf.TimerHandler();
}
setTimeout(timerHandler, 5);
}
MyClass.propertype.TimerHandler = function(){
//Do something
}
這樣就可以順利的使用Timer在類別裡呼叫類別裡的函式。
沒有留言:
張貼留言