1. 创建一个空对象
    2. 让空对象的 proto (IE 没有该属性) 成员指向构造函数的 prototype 成员对象
    3. 使用 apply 调用构造函数,属性和方法被添加到 this 引用的对象中
    4. 如果构造函数中没有返回其他对象,那么返回 this,即创建的这个新对象;否则,返回构造函数返回的对象 ``` /*
      1. fn就是构造器(类)
      2. 创建一个空对象,让空对象的proto指向构造器的prototype
      3. 调用构造器方法,属性和方法被添加到this上
      4. 如果构造器没有返回值,就返回this本身
      5. 如果有返回值,就返回result */ function _new = function(fn) { const obj = Object.create(fn.prototype); const result = fn.apply(obj); if (result && typeof result === “object” || typeof result === “function”) { return result; } return obj; };

    ```