構(gòu)造函數(shù)繼承也就是也用構(gòu)造函數(shù),也可以說是偽造對象或經(jīng)典繼承
思想很簡單:在子類型構(gòu)造函數(shù)的內(nèi)部調(diào)用超類型構(gòu)造函數(shù)
- 創(chuàng)建構(gòu)造函數(shù)
function Car(master,color){
this.master = master;
this.color = color;
}
# 創(chuàng)建原型鏈方法
Car.prototype.changeColor = function(color){
this.color = color;
}
- 創(chuàng)建Audi子構(gòu)造函數(shù)链峭,并且繼承Car構(gòu)造函數(shù)
function Audi(){
Car.apply(this,arguments);
}
- 創(chuàng)建Audi原型鏈方法
Audi.prototype.getMessage = function(){
return this.master + "有一輛"+this.color+"的奧迪";
}
- 實例繼承測試
var car1 = new Audi("car1Master","黑色");
var car2 = new Audi("car2Master","白色");
console.log(car1.getMessage());
// 結(jié)果:car1Master有一輛黑色的奧迪
console.log(car2.getMessage());
// 結(jié)果:car2Master有一輛白色的奧迪
注意:Car超類構(gòu)造函數(shù)的原型有一個changeColor方法骏啰,Audi繼承了Car,那么對于Audi來說毕箍,原型的方法是不可見的浪谴,因此函數(shù)的復(fù)用就無從談起了
好處:對于原型鏈繼承來說,構(gòu)造函數(shù)繼承可以向超類構(gòu)造函數(shù)中傳遞參數(shù)