2

使用 setTimeout 回调时如何维护对实例的引用?例如:

在我的 ViewModel 中(使用 Knockout)

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

这失败了。

4

1 回答 1

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 的回答

我希望它有所帮助。

于 2013-07-22T07:28:48.413 回答