|
前段時間溫故了下JS OO之寫類方式,從這篇開始我們看看JS OO之繼承方式。
面向?qū)ο蟮恼Z言多數(shù)都支持繼承,繼承最重要的優(yōu)點(diǎn)就是代碼復(fù)用,從而構(gòu)建大型軟件系統(tǒng)。如果一個類能夠重用另一個類的屬性和或方法,就稱之為繼承。從這個角度來看看JS的繼承方式。JS中繼承方式與寫類方式息息相關(guān)。不同的寫類方式造成不同的繼承方式。各種流行JS庫繼承方式也各不相同。從最簡單的復(fù)用開始。
1、構(gòu)造函數(shù)方式寫類,通過方法調(diào)用復(fù)制父類屬性/字段到子類 實(shí)現(xiàn)繼承
這里父類,子類都采用構(gòu)造函數(shù)方式寫,不用原型。子類調(diào)用父類函數(shù)來復(fù)制父類的屬性。
/**
* 父類Polygon:多邊形
* @param {Object} sides
*/
function Polygon(sides) {
this.sides = sides;
this.setSides = function(s) {this.sides=s;}
}
/**
* 子類Triangle:三角形
*/
function Triangle() {
this.tempfun = Polygon;//父類引用賦值給子類的一個屬性tempfun
this.tempfun(3);//調(diào)用
delete this.tempfun;//刪除該屬性
this.getArea = function(){};
}
//new個對象
var tri = new Triangle();
console.log(tri.sides);//繼承的屬性
console.log(tri.setSides);//繼承的方法
console.log(tri.getArea);//自有的方法
//缺點(diǎn)是對于Triangle的實(shí)例對象用instanceof為父類Polygon時是false
console.log(tri instanceof Triangle);//true
console.log(tri instanceof Polygon);//false
it知識庫:JavaScript繼承方式(1),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。