// new的原理
function newFun(Fun, ...args) {
// 声明一个空对象
let obj = {}
// 把空对象和构造函数通过原型链进行链接
obj.__proto__ = Fun.prototype
// 把构造函数的this绑定到新的空对象身上
const result = Fun.apply(obj, args)
// 据构建函数返回的类型判断,如果是值类型,则返回对象,如果是引用类型,就要返回这个引用类型
return result instanceof Object ? result : obj
}
function Person(name) {
this.name = name;
}
Person.prototype.show = function() {
console.log(`我的名字是${this.name}`);
}
const p1 = newFun(Person, 'person');
p1.show()
js里面实现new原理
最新推荐文章于 2024-08-25 09:57:22 发布