new 的原理
例子:new parent()
new原理:
- 拿到参数(第一个参数为被
new的对象,即:parent) - 创建一个空对象
target - 把空对象
target的原型链引用(__proto__)指向parent的原型(prototype) - 执行
parent的构造函数,并把this指向改为空对象target(目的:把parent对象上的属性/方法,挂载到target上),得到返回值result - 判断
result,满足条件则return result,否则return target

上图提供了两种大同小异的实现原理。(引出了后面的一个问题)
测一下

可以看出,与真正new方法效果一致。
Object.create 的原理

上面两种不同的new实现,可以得出Objcet.creat的实现原理:

MDN的解释也是比较详细的,也可以在看一看,加深理解