我的程序包含一个传递了回调函数的方法。此回调函数可能在另一个对象内。这是一个简短的摘要(可能不是正确的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
的东西?如何获得此参考?