index.js
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