emitter.js
function( type, handler ) {

      var handlers = this._events[ type ]
      var position = handlers.indexOf( handler )

      if( handlers && ~position ) {
        if( handlers.length === 1 ) {
          this._events[ type ] = undefined
          delete this._events[ type ]
        } else {
          handlers.splice( position, 1 )
        }
      }

      return this

    }
function( type, handler ) {

      var handlers = this._events[ type ]
      var position = handlers.indexOf( handler )

      if( handlers && ~position ) {
        if( handlers.length === 1 ) {
          this._events[ type ] = undefined
          delete this._events[ type ]
        } else {
          handlers.splice( position, 1 )
        }
      }

      return this

    }
function ( type , handler ) { var handlers = this . _events [ type ] var position = handlers . indexOf ( handler ) if ( handlers && ~ position ) { if ( handlers . length === 1 ) { this . _events [ type ] = undefined delete this . _events [ type ] } else { handlers . splice ( position , 1 ) } } return this }
Remove a listener for the specified event
@param  {String}   type
@param  {Function} handler
@return {Emitter}
Remove a listener for the specified event