SOURCE

function es5New(ctor) {
	let args = Array.prototype.slice.call(arguments, 1);
	
  let obj = {};
  obj._proto_ = ctor.prototype;
  
  let result = ctor.apply(obj, args);
  
  return result instanceof Object ? result : obj;
}

function es6New(ctor, ...args) {
  
  let obj = Object.create(ctor.prototype);
  
  let result = ctor.apply(obj, args);
  
  return result instanceof Object ? result : obj;
}
console 命令行工具 X clear

                    
>
console