off()

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;
                            }
                        }
                    }
                }
            });
        }
    }