code: function(args) {
                  // We create a new object with original args
                  var that = new (Function.prototype.bind.apply(sup, args))(...args);
  
                  // We apply the new constructor on it
                  base.apply(that, args);
                  // We add the proxy and send the object
                  return new Proxy(that, baseProxy);
              }
docs: Apply