Javascript 如何重写它以包含调试语句?
以前我有这个Javascript 如何重写它以包含调试语句?,javascript,Javascript,以前我有这个 onSuccess: this.receiveRequest.bind(this, callback) 这将返回一个函数,其中接收请求的This绑定到提供的This绑定-这与包含receiveRequest方法的函数相同 所以我试着重写了 onSuccess : function () { console.log({'XXX: onSuccess': this}); return this.receiveR
onSuccess: this.receiveRequest.bind(this, callback)
这将返回一个函数,其中接收请求的This绑定到提供的This绑定-这与包含receiveRequest方法的函数相同
所以我试着重写了
onSuccess : function () {
console.log({'XXX: onSuccess': this});
return this.receiveRequest.call(this, callback)
}.bind(this),
但是这不起作用。。为什么?有什么想法吗?当您在onSuccess函数中使用.bindthis时,它会使该窗口或全局对象的上下文成为窗口或全局对象-请尝试将其删除。在这里抛出调试逻辑应该很简单,但是考虑到上下文的绑定和显式声明,您可能会也可能不会尝试实现与此更相似的功能
// ...
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();
你说的“不工作”是什么意思?你试过将回调传递到函数中吗?@superalStreams like.bindthis,callback?我也这么想。