使用 setTimeout 回调时如何维护对实例的引用?例如:
在我的 ViewModel 中(使用 Knockout)
var MyVM = function () {
this.myFunc = function () {
setTimeout("this.myCallback()", 2000);
};
this.myCallback = function() { this.myObservable(true); }
}
这失败了。
使用 setTimeout 回调时如何维护对实例的引用?例如:
在我的 ViewModel 中(使用 Knockout)
var MyVM = function () {
this.myFunc = function () {
setTimeout("this.myCallback()", 2000);
};
this.myCallback = function() { this.myObservable(true); }
}
这失败了。
您可以添加一个私有字段:
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 的回答。
我希望它有所帮助。