2013-07-22 18 views
2

如何在使用setTimeout回調時維護對實例的引用? E.G:如何在使用setTimeout回調函數時維護對實例的引用?

在我的視圖模型(使用淘汰賽)

var MyVM = function() { 
    this.myFunc = function() { 
    setTimeout("this.myCallback()", 2000); 
    }; 
    this.myCallback = function() { this.myObservable(true); } 
} 

這種失敗。

+0

你爲什麼需要參考? – ObieMD5

+0

也許OP想'clearTimeout'? –

+0

@MatthewBlancarte爲什麼使用'this.myCallback = function(){this.myObservable(true); }而不是clearTimeout(MyVM);? – ObieMD5

回答

3

您可以添加一個私有字段:

var MyVM = function() { 
    var self = this; 
    this.myFunc = function() { 
     setTimeout(self.myCallback, 2000); 
    }; 
    this.myCallback = function() { self.myObservable(true); } 
} 
var vm = new MyVM(); 

有一個看RP尼邁耶的answer

我希望它有幫助。

相關問題