new的实现原理
*在面试中关于new的实现原理可以说是高频问题了,那么关于new的实现原理你又知道多少呢, 接下来让我们一起探索吧*
function createNew (Parent, ...reset) {
// 1、创建个新对象
// 2、新新对象中的__proto__指向构造函数的prototype
const child = Object.create(Parent.prototype)
// 3、将构造函数中的this指向新的对象
//4、将构造函数中的属性值添加到新的对象中
const result = Parent.apply(child, ...reset)
return typeof result === 'object' ? result : child
}
接下来让我们一起看看结果吧
function parent () {
name = '123'
say () {
console.log(this.name)
}
}
const newChild = createNew(parent)
答案我不告知啦, 动起你们的小手自己瞅瞅吧!!!