以前我有这个。
onSuccess: this.receiveRequest.bind(this, callback)
这将返回一个函数,其接收请求绑定到提供给绑定的绑定 - 这与包含this
方法的receiveRequest
相同。
所以我尝试重写那个..
onSuccess : function () {
console.log({'XXX: onSuccess': this});
return this.receiveRequest.call(this, callback)
}.bind(this),
然而这不起作用..为什么?有什么想法吗?
答案 0 :(得分:0)
在.bind(this)
函数上使用onSuccess
时,它会使this
window
或全局对象的上下文 - 尝试删除它。在那里抛出调试逻辑应该是微不足道的,但是考虑到上下文的绑定和显式声明,看起来你可能会或者可能不会尝试实现与此类似的东西......
// ...
receiveRequest: function(callback) {
console.log('received');
callback();
},
onSuccess: function (cb) {
console.log({'XXX: onSuccess': this});
return this.receiveRequest.bind(this, cb)
}
// ...
var requestReceivedFunc = myObj.onSuccess(function() {
console.log('my callback');
});
requestReceivedFunc();