JavaScript:获取回调函数的对象引用

时间:2019-09-12 09:52:26

标签: javascript oop

我的程序包含一个传递了回调函数的方法。此回调函数可能在另一个对象内。这是一个简短的摘要(可能不是正确的JavaScript,只是为了获得一个想法):

var myobj = {
  f1: function(callback) {
  var hr = new XMLHttpRequest;
  hr.onload = callback.bind(this);
  },

  f2: function() {
    this.f1(this.f3);
  },

  f3: function(event) {
  }
}

在这种情况下,可以将this作为参数写入callback.bind。但是,请考虑另一个对象:

var theirobj = {
  f4: function() {
    myobj.f1(this.f3);
  },

  f5: function(event) {
  }
}

现在,它不再起作用了,因为this指的是myobj,而callback指的是theirobj中的一个函子。

因此,用于分配bind的{​​{1}}事件处理程序的onload需要回调函数的对象变量。 XMLHttpRequest原型中是否有类似callback.getInstanceVariable()callback.instance的东西?如何获得此参考?

0 个答案:

没有答案