1.混入式继承 : 遍历父对象的成员,添加到子对象中
特点 : 每继承一次,就要写一次循环
应用场景 : 用于单个对象继承
2.替换原型:将父元素 作为 子对象构造函数的原型
特点:子对象默认的原型会被覆盖
应用场景:适应于 多个对象继承
3.混合式:混入式+替换原型
解决方案:遍历父元素成员,添加给子元素的原型
不会覆盖原本的原型
```javascript
//父对象
var wjl = {
house: {
address: '别墅',
price: 100000000
},
car: {
brand: '兰博基尼',
price: 200000
}
}
//子对象
var wsc = {
gfs: ['林狗', '红红']
}
//1、混入式继承
for(var key in wjl){
wsc[key]=wjl[key];
}
//2、替换原型
function sonWang(name,gfs){
this.name=name;
this.gfs=gfs;
}
//子对象构造函数的原型
sonWang.prototype.type='富二代';
//修改父元素为sonWang的原型
sonWang.prototype=wjl;
//手动修改constructor的指向
sonWang.prototype.constructor=sonWang;
var s1=new sonWang('思聪',['一一','慧慧']);
//3、混合式
function sonWang(name, gfs) {
this.name = name;
this.gfs = gfs;
}
//子对象原型
sonWang.prototype.type = '富二代';
//给子元素原型动态添加成员
for (var key in wjl) {
sonWang.prototype[key] = wjl[key];
}
var s1 = new sonWang('水水', ['辉辉', '代码', '如花']);
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020071619250076.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80OTIwNzc1OQ==,size_16,color_FFFFFF,t_70)
加油鸭!!!!!!