new关键字进行的操作
new关键字进行了如下的操作(为了便于描述,obj用来表示创建的空对象、用constrc来表示构造函数):
- 创建一个空对象
obj({}); - 将obj的
__proto__属性指向构造函数constrc的原型
(即obj.__proto__ = constrc.prototype)。 - 将构造函数
constrc内部的this绑定到新建的对象obj,执行constrc(也就是跟调用普通函数一样,只是此时函数的this为新创建的对象obj而已,就好像执行obj.constrc()一样); - 若构造函数没有返回非原始值(即不是引用类型的值),则返回该新建的对象
obj(默认会添加return this)。否则,返回引用类型的值。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 解忧杂货店小店员!







