trigger(name) {
    const klass = this.name || this.constructor.name
    Log.debug.apply(Log, [klass].concat(Array.prototype.slice.call(arguments)))
    if (!this._events) return this
    const args = slice.call(arguments, 1)
    if (!eventsApi(this, 'trigger', name, args)) return this
    const events = this._events[name]
    const allEvents = this._events.all
    if (events) triggerEvents(events, args, klass, name)
    if (allEvents) triggerEvents(allEvents, arguments, klass, name)
    return this
  }
triggers an event given its `name`
@method trigger
@param {String} name