off(nameOrNames, callback) {
    if (nameOrNames == null) {
      return this.removeAllListeners();
    }

    eventNames(nameOrNames).forEach((name) => {
      if (callback === undefined) {
        return this.removeAllListeners(name);
      }
      return this.removeListener(name, callback);
    });
    return this;
  }
@method Events#off
@description
Remove a previously-bound callback event listener from an object. If no
event name is specified, callbacks for all events will be removed.

@param {string} nameOrNames
  The name of the event or space separated list of events to stop listening
  to.
@param {function} callback That callback to remove.