美文网首页程序员
new关键字的原理

new关键字的原理

作者: 北南桥 | 来源:发表于2020-09-18 10:43 被阅读0次

    new关键字做了哪些事

    • 创建一个新对象
    • 将构造函数的作用域赋给新对象(更改this指向)
    • 执行构造函数的代码(为新对象添加属性,实例化对象)
    • 返回新对象

    自定义实现new关键字

    function _new(func, ...args) {
      if (typeof func !== 'function') {
        return {};
      }
      let newObj = Object.create(func.prototype);
      let result = func.apply(newObj, ...args);
      if ((result !== null && result === 'object') || result === 'function') {
        return result;
      }
      return newObj;
    }
    

    相关文章

      网友评论

        本文标题:new关键字的原理

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