什么是组合继承
组合继承,有时候又叫做伪经典继承,指的是将原型链和借用构造函数的技术组合一块,从而发挥二者之长的一种继承模式。
其思路是:使用原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性的继承。
这样,即通过在原型上定义方法实现了函数复用,又能够保证每个实例都有它自己的属性。
例如:
//1、父构造函数
function Father(uname, age){
// this 指向父构造函数的对象实例
this.uname = uname;
this.age = age;
}
Father.prototype.money=function (){
console.log('挣钱')
}
//2、子构造函数
function Son(uname, age, score){
Father.call(this,uname,age);
this.score = score;
}
Son.prototype = new Father();
Son.prototype.exam = function (){
console.log("孩子要考试")
}
//如果利用对象的形式修改了原型对象,别忘了利用constructor 指回构造函数。
Son.prototype.constructor = Son;
var son = new Son('刘德华',18,100);
console.log(son);