code: function applyNew(args) {
          // create an object with ctor's prototype but without
          // calling ctor on it.
          var ctor = args.callee, t = forceNew(ctor);
          // execute the real constructor on the new object
          ctor.apply(t, args);
          return t;
      }
docs: applyNew(args) just like 'new ctor()' except that the constructor and its arguments come from args, which must be an array or an arguments object