操作符 new 
在调用 new 的过程中会发生以上 4 件事情:
- 创建一个新的空对象
 - 设置原型,将构造函数的作用域赋给新对象(也就是将对象的 proto属性指向构造函数的 prototype 属性)
 - 指向构造函数中的代码,构造函数中的 this 指向该对象(也就是为这个对象添加属性或方法)
 - 返回新的对象
 
方式一:
js
function newFactory(fn, ...args) {
  // method1
  const obj = new Object();
  obj.__proto__ = newFactory.prototype;
  newFactory.apply(obj, args);
  return obj;
}方式二:
js
function newFactory(fn, ...args) {
  const obj = Object.create(fn.prototype);
  fn.apply(obj, args);
  return obj;
}