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 许可协议。转载请注明来自 解忧杂货店小店员!