new

文章链接

      function myNew() {
        // 创建一个新对象
        const obj = {}
        // 获取构造函数
        const Constructor = [].shift.call(arguments)
        // 链接到原型
        obj.__proto__ = Constructor.prototype
        // 绑定 this 并执行构造函数
        const result = Constructor.apply(obj, arguments)
        // 确保 new 出来的是个对象
        return typeof result === 'object' ? result : obj
      }