如何在使用setTimeout回调时维护对实例的引用? E.G:
在我的ViewModel中(使用Knockout)
var MyVM = function () {
this.myFunc = function () {
setTimeout("this.myCallback()", 2000);
};
this.myCallback = function() { this.myObservable(true); }
}
这失败了。
答案 0 :(得分: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 Niemeyer的answer。
我希望它有所帮助。