|
前段時間溫故了下JS OO之寫類方式,從這篇開始我們看看JS OO之繼承方式。
面向對象的語言多數都支持繼承,繼承最重要的優點就是代碼復用,從而構建大型軟件系統。如果一個類能夠重用另一個類的屬性和或方法,就稱之為繼承。從這個角度來看看JS的繼承方式。JS中繼承方式與寫類方式息息相關。不同的寫類方式造成不同的繼承方式。各種流行JS庫繼承方式也各不相同。從最簡單的復用開始。
1、構造函數方式寫類,通過方法調用復制父類屬性/字段到子類 實現繼承
這里父類,子類都采用構造函數方式寫,不用原型。子類調用父類函數來復制父類的屬性。
/**
* 父類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);//調用
delete this.tempfun;//刪除該屬性
this.getArea = function(){};
}
//new個對象
var tri = new Triangle();
console.log(tri.sides);//繼承的屬性
console.log(tri.setSides);//繼承的方法
console.log(tri.getArea);//自有的方法
//缺點是對于Triangle的實例對象用instanceof為父類Polygon時是false
console.log(tri instanceof Triangle);//true
console.log(tri instanceof Polygon);//false
it知識庫:JavaScript繼承方式(1),轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。