in lib/@uncharted/cards/src/util/IBindable.js [74:102]
off(events = null, callback = null, owner = null) {
if (events === null) {
if (!callback) {
this.mOmniHandlers.length = 0;
} else {
const index = this.mOmniHandlers.indexOf(callback);
if (index >= 0) {
this.mOmniHandlers.splice(index, 1);
}
}
} else {
const eventArray = events instanceof Array ? events : events.split(' ');
eventArray.forEach(event => {
const handlers = this.mHandlers[event];
if (handlers) {
if (!callback) {
delete this.mHandlers[event];
} else {
for (let i = 0, n = handlers.length; i < n; ++i) {
if (callback === handlers[i] || (callback === handlers[i][_sourceFunctionKey] && owner === handlers[i][_sourceOwnerKey])) {
handlers.splice(i, 1);
break;
}
}
}
}
});
}
}