美文网首页
手写 new 操作符

手写 new 操作符

作者: 泪滴在琴上 | 来源:发表于2022-04-07 11:13 被阅读0次

    首先我们要知道 new一个对象的时候他发生了什么。

    其实就是在内部生成了一个对象,然后把你的属性这些附加到这个对象上,最后再返回这个对象。

    function myNew(fn, ...args) {
      // 基于原型链 创建一个新对象
      let newObj = Object.create(fn.prototype)
    
      // 添加属性到新对象上 并获取obj函数的结果
      let res = fn.call(newObj, ...args)
    
      // 如果执行结果有返回值并且是一个对象, 返回执行的结果, 否则, 返回新创建的对象
      return res && typeof res === 'object' ? res : newObj;
    }
    
    

    作者:Ali2333
    链接:https://juejin.cn/post/7079681931662589960
    来源:稀土掘金
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关文章

      网友评论

          本文标题:手写 new 操作符

          本文链接:https://www.haomeiwen.com/subject/mrogjrtx.html