我需要分离并使用以下代码附加事件:
var oNavController = this.getOwnerComponent().getAppComponent().getNavigationController();
this.extensionAPI.attachPageDataLoaded(this._executeTrampolin.bind(this, oNavController));
这是标准代码,我不想更改它。
因此,我尝试使用以下代码从扩展程序中删除此事件:
var that = this.base.getView().getController();
var oNavController = that.getOwnerComponent().getAppComponent().getNavigationController();
that.extensionAPI.detachPageDataLoaded(that._executeTrampolin.bind(that, oNavController))
但是事件并没有脱离。
答案 0 :(得分:0)
const myFn = function() {};
const myFn2 = myFn.bind(thisArg);
myFn === myFn2; // returns: false
Function.prototype.bind
为给定功能创建新的副本。
bind()
方法创建一个新函数[...]。
即分离事件处理程序时,必须传递与一次调用this._executeTrampolin.bind(this, oNavController)
来附加该处理程序时创建的完全相同的引用。