繼承---寄生式繼承
寄生式繼承是與原型式繼承緊密相關的一種思路。其思路與寄生建構函式和工廠模式類似,即建立乙個僅用於封裝繼承過程的函式
該函式在內部以某種方式來增強物件,最後再像真的是它做了所有工作一樣返回物件。寄生式模式如下例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...