使用new去创建一个实例对象,这个实例对象的特点,有一个proto属性指向构造函数的原型对象。
调用构造函数这个方法,并改变this的指向。
返回这个对象。
function Animal(name, age) {
this.name = name;
this.age = age;
};
function myNew(fun,...rest) {
let newObj = {
__proto__: fun.prototype };
fun.apply(newObj, rest);
return newObj
};
let dog = myNew(Animal,'dog',18);
let cat = new Animal('cat',18);