code: function onListeners($this, eventsInput, callback, context, type)
    {
      if ( !isFunction( callback ) )
      {
        return noop;
      }
  
      var callbackContext = context || $this;
      var events = toArray( eventsInput, ' ' );
      var listeners = $this.$$on;
  
      if ( !listeners )
      {
        Class.prop( $this, '$$on', listeners = {} );
      }
  
      var nodes = [];
  
      for (var i = 0; i < events.length; i++)
      {
        var eventName = events[ i ];
        var eventListeners = listeners[ eventName ];
  
        if ( !eventListeners )
        {
          eventListeners = listeners[ eventName ] = new EventNode();
        }
  
        nodes.push( new EventNode( eventListeners, callback, callbackContext, type, triggerId ) );
      }
  
      return function ignore()
      {
        for (var i = 0; i < nodes.length; i++)
        {
          nodes[ i ].remove();
        }
  
        nodes.length = 0;
      };
    }
docs: A mixin which adds `$on`, `$once`, `$after`, and `$trigger` functions to
  another object.
  
  @class Eventful$
  @memberof Rekord
  @see Rekord.addEventful
   Adds a listener to $this