2011-03-29 176 views
3

這兩種類型的繼承的例子代碼在這裏:在JavaScript中寄生組合繼承和組合繼承有什麼區別?

寄生組合繼承:http://jsfiddle.net/dKKaS/

組合繼承:http://jsfiddle.net/XZn3A/

有人能告訴我有什麼區別?謝謝。

+0

這真是太神奇了......如果你去google.com搜索「寄生組合繼承」,這篇文章出現#1,它剛剛發佈15分鐘前.... – 2011-03-29 03:11:23

+0

一個區別是,這兩種類型的寄生蟲構造函數都是不同的,但對於一般來說,它們最終都是'SuperType' ......除此之外我不確定。 – mVChr 2011-03-29 03:54:32

+8

當您詢問有關書籍的問題時,請提供有關工作的信息。它可以幫助人們幫助你,並正確地歸屬代碼。在這種情況下,這些示例來自Nicholas C. Zakas(Wrox,2009)的* Professional Web for Developers,Second Edition *。第一個例子是第179-180頁,第二個例子在第176-177頁。 – Dori 2011-03-30 23:37:41

回答

2

答案是,在寄生組合繼承中,基礎構造函數只被調用一次。通過組合繼承,構造函數被調用兩次。

+0

是否有任何特殊的原因或用法來調用構造函數兩次? – Blake 2014-04-20 19:11:04

+0

@Blake ...沒有理由兩次調用構造函數。這實際上是問題寄生組合繼承解決。 – nonybrighto 2016-09-11 15:46:28