寄生式繼承

2022-07-16 08:00:14 字數 794 閱讀 1469

// 寄生式繼承是與原形式繼承緊密相關的一種思路,並且也是由克羅克福德推而廣之的。

// 寄生式繼承的思路與寄生建構函式和工廠模式類似,即建立乙個僅用於封裝繼承過程的函式,該函式在內部以某種方式來增強物件,

// 最後再像真的是他做了所有工作一樣返回物件,以下**示範了寄生式繼承模式

function createanother(original)

return clone; // 返回這個物件

}// 在這個例子中,createanother()接收乙個引數,也就是將要作為新物件基礎的物件,

// 然後把這個物件(original)傳遞給object()函式,將返回的結果賦值給clone,再為clone物件新增乙個新方法sayhi,最後返回clone物件

// 可以像下面的例子這樣來使用createanother()函式

var person=

var anotherperson=createanother(person);

anotherperson.sayhi(); // hi

// 這個例子中的**基於person返回了乙個新物件---anotherperson,新物件不僅有person的所有屬性和方法,還有自己的sayhi()方法

// 在主要考慮物件而不是自定義型別和建構函式的情況下,寄生式繼承也是一種有用的模式,前面示範使用的object()函式不是必須的

// 任何能夠返回新物件的函式都適用於此模式

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

寄生式繼承

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

JavaScript 繼承 寄生式繼承

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

寄生式組合繼承

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