1.创建一个空的简单JavaScript对象(即{});
2.链接该对象(即设置该对象的构造函数)到另一个对象 ;
3.将步骤1新创建的对象作为this的上下文 ;
4.如果该函数没有返回对象,则返回this
也就是new运算符做的操作就是创建新对象,将新对象的原型指向被new的原型链,并且将this指向新对象
所以可以借用Oject.create这个方法创建一个新的对象,并且修改原型的指向
Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的proto
function father(name, age) {
this.name = name;
this.age = age;
}
father.prototype.con = function() {
console.log(this.name, this.age);
}
function MyNew(fn, ...arg) {
let newObj = Object.create(fn.prototype);
fn.call(newObj, ...arg);
}
let son = MyNew(father, 'name', 123);
son.con(); // 'name' 123
网友评论