JavaScript 繼承 寄生式繼承

2021-08-13 23:01:10 字數 611 閱讀 6536

繼承---寄生式繼承

寄生式繼承是與原型式繼承緊密相關的一種思路。其思路與寄生建構函式和工廠模式類似,即建立乙個僅用於封裝繼承過程的函式

該函式在內部以某種方式來增強物件,最後再像真的是它做了所有工作一樣返回物件。寄生式模式如下例1所示:

例1:

function createanother(original);

return clone; //返回這個物件

}var person=

var anotherperson=createanother(person);

anotherperson.sayhi();//hi

alert(anotherperson.friends);//111,222,333

在例1中,基於person物件返回了乙個新物件anotherperson。新物件不僅具有person的所有屬性和方法,而且還有自己的

sayhi方法。

使用寄生式繼承來為物件新增函式,會由於不能做到函式復用而降低效率,這一點與建構函式模式相似。

寄生式繼承

寄生式繼承是原型繼承密切相關的一種思路,寄生式繼承的思路與寄生建構函式和工廠模式類似,即建立乙個僅用於封裝繼承過程 的函式,該函式在內部以某種方式來增強物件,function object o f.prototype o f.name shalio function createanother or...

寄生式繼承

寄生式繼承是與原形式繼承緊密相關的一種思路,並且也是由克羅克福德推而廣之的。寄生式繼承的思路與寄生建構函式和工廠模式類似,即建立乙個僅用於封裝繼承過程的函式,該函式在內部以某種方式來增強物件,最後再像真的是他做了所有工作一樣返回物件,以下 示範了寄生式繼承模式 function createanot...

寄生式組合繼承

function box f 這樣直接將原型指向乙個物件,會將原有的constructor覆蓋 box.prototype 因此這裡我們使用定義屬性,重新穿件這個constructor的指向 object.defineproperty box.prototype,constructor functi...