function() {
      var args = Array.prototype.slice.call(arguments);

      if (! (this instanceof child)) {
        var obj = Object.create(child.prototype);
        child.apply(obj, args);
        return obj;
      }

      self.apply(this, args);
    }
function() {
      var args = Array.prototype.slice.call(arguments);

      if (! (this instanceof child)) {
        var obj = Object.create(child.prototype);
        child.apply(obj, args);
        return obj;
      }

      self.apply(this, args);
    }
function ( ) { var args = Array . prototype . slice . call ( arguments ) ; if ( ! ( this instanceof child ) ) { var obj = Object . create ( child . prototype ) ; child . apply ( obj , args ) ; return obj ; } self . apply ( this , args ) ; }
-- constructor
-- constructor