avatar

new关键字进行的操作

new关键字进行的操作

new关键字进行了如下的操作(为了便于描述,obj用来表示创建的空对象、用constrc来表示构造函数):

  1. 创建一个空对象obj({})
  2. 将obj的__proto__属性指向构造函数constrc的原型
    (即obj.__proto__ = constrc.prototype)。
  3. 将构造函数constrc内部的this绑定到新建的对象obj,执行constrc(也就是跟调用普通函数一样,只是此时函数的this为新创建的对象obj而已,就好像执行obj.constrc()一样);
  4. 若构造函数没有返回非原始值(即不是引用类型的值),则返回该新建的对象obj(默认会添加return this)。否则,返回引用类型的值。
文章作者: Darkerbin
文章链接: https://darkerbin.github.io/2020/05/10/new关键字进行的操作/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 解忧杂货店小店员
打赏
  • 微信
    微信
  • 支付寶
    支付寶