使用建構函式方法和原型鏈方法都不能很好的實現繼承,他們各有優勢,也各有劣勢,如果把他們組合在一起,是不是可以各取所長,取長補短呢?答案是可以的,這就是組合繼承
function person(skin)
person.prototype.run=function()
function chinese(native,skin)
chinese.prototype=new person()
var p1=new chinese(『中國』,『yellow』)
console.log(p1.native)
console.log(p1.skin)
p1.run()
執行結果如圖:
這樣組合而成的方式實現繼承是最常見,也是能滿足我們需求的繼承方式。
JS最常用的繼承方式 組合繼承(偽經典繼承)
組合繼承有時候也叫做為經典繼承,指的是將原型鏈和借用建構函式的技術組合到一起,發揮二者之長。背後的思路是使用原型鏈實現方式對原型屬性和方法的繼承,而借用建構函式來實現對例項屬性的繼承。function supertype name supertype.prototype.sayname functi...
js的組合繼承
組合繼承也叫偽經典繼承,指將原型鏈的借用建構函式的技術組合到一起,發揮二者之長的一種繼承模式。思路是使用原型鏈實現對原型屬性和方法的繼承,而通過建構函式來實現例項繼承,這樣就既對原型上的方法實現了復用,又能保證每個例項獨特的屬性。function supertype supertype.protot...
js組合繼承與寄生繼承
組合繼承 function parent parent,prototype.eat function function clild name 1 重寫原型物件,覆蓋之前的,需重新指向建構函式,2 第二次執行這個函式,避免了屬性共享 clild.prototype new parent clild.p...