首先,说说一般人都在使用的组合继承优化后的方法:
function Parent(){
this.name="父级";
this.play=[1,2,3,6];
}
function Child(){
Parent.call(this);
this.type="继承";
}
Child.prototype=Parent.prototype;
let result=new Child();
let cosn=new Parent();
console.log(result.name);//父级
console.log(result.constructor===cosn.constructor);//true
可以发现,两者原型还是同一个,不是完全的继承。所以最终解决方法:
function Parent(){
this.name="父级";
this.play=[1,2,3,6];
}
function Child(){
Parent.call(this);
this.type="继承";
}
Child.prototype=Object.create(Parent.prototype);
Child.prototype.constructor=Child;
let result=new Child();
let cosn=new Parent();
console.log(result.name);//父级
console.log(result.constructor===cosn.constructor);//false
可以发现二者原型不再相同,实现完全继承。