一、原型繼承
b.prototype=new a; 子類的原型等於父類的乙個例項
把父類a中私有的屬性和公有的屬性都繼承過來,變為子類b中公有的屬性
function a()二、call繼承在子類b的函式體中,把父類a當做普通函式執行,並且讓父類a中的this變為子類b的乙個例項,這樣就相當於把父類a中的所有的私有的屬性都增加給子類b的例項了a.prototype =
};function b()
b.prototype = new a;
b.prototype.constructor = b;
只能把a中私有的繼承過來,當做b中私有的,公有屬性的無法進行處理
function a()三、冒充物件繼承在子類b的函式體中,先獲取父類a的乙個例項,然後遍歷這個例項中的所有屬性,把所有的屬性依次賦值給子類b的例項的私有的屬性a.prototype =
};function b()
var b = new b;
把a中公有的和私有的都變為了b中私有的
function a()四、混合模式:原型模式+call模式a.prototype =
};function b()
}// this.temp = new a;
// for (var key in this.temp)
// }
// delete this.temp;
}var b = new b;
console.dir(b);
a中私有的在b中私有的和公有的都存在了,a中公有的在b中公有的
雖然a中私有的重複了,但是沒有太大的影響,如果非要私有的就是私有的,公有的就是公有的,我們只需要自己在編寫乙個程式把私有的刪掉即可
function a()五、中間類繼承:在ie下不相容、我們一般用它只處理內建類a.prototype =
};function b()
b.prototype = new a;
b.prototype.constructor = b;
//將b公有中繼承了a私有的刪除掉,以下可以不寫,除非你有強迫症
b.prototype.delprivate = (function ()
}return null;
}).call(b.prototype);
var b = new b;
console.dir(b);
js各種繼承方式彙總
首先定義乙個父類 function animal name animal.prototype.eat function food 特點 1 子類的原型指向父類的例項 缺點 1 無法多繼承 2 無法向父類的構造傳參 3 來自原型物件的引用屬性是所有例項共享的 function cat cat.prot...
各種設計模式分析
簡單工廠模式 通過工廠類對業務邏輯選擇封裝化,把業務邏輯封裝到工廠方法中.優點是使業務邏輯和業務實現真正 分離.缺點是擴充套件起來非常不方便.需要修改原來的工廠實現 試用於業務比較多,但是變化比較小的情況 抽象工廠模式 通過抽象工廠,對比起來,他可以輕易載入返回的業務類。且可以對返回類抽象化.實現業...
C 各種繼承方式的可見性
公有繼承 public 私有繼承 private 保護繼承 protected 是常用的三種繼承方式。1.公有繼承 public 公有繼承的特點是基類的公有成員和保護成員作為派生類的成員時,它們都保持原有的狀態,而基類的私有成員仍然是私有的,不能被這個派生類的子類所訪問。2.私有繼承 private...