js繼承和基礎繼承小結

2022-03-09 10:03:15 字數 1149 閱讀 3820

前兩天學習js繼承的時候覺得有點繞,子承父 父承子的一通,後來搜到一篇阮一峰大神的繼承方式的部落格學習了一下,現整理了一下主要的五種繼承方式。

父構造器person,子構造器man,man是子構造器new出來的物件,"只能繼承父構造器中的屬性" 代表繼承屬性和方法.

第二種叫原型繼承:

由於person物件中,不變的屬性都可以直接寫入person.prototype.所以我們可以讓man()跳過person(),直接繼承person.prototype.這樣做的優點是效率比較高,比較省記憶體。缺點是man.prototype和person.prototype現在指向了同乙個物件,那麼任何對man.prototype的修改,都會反映到person.prototype。

第三種原型鏈繼承:

如果man的prototype物件,指向乙個person的例項,那麼所有man的例項,就能繼承person了.它相當於完全刪除了prototype 物件原先的值,然後賦予乙個新值.缺點是少了contructor ,原型物件的指向也發生改變 而且還會無緣無故多了好多東西

第四種原型拷貝繼承:

簡單說,如果把父物件的所有屬性和方法,拷貝進子物件,不也能夠實現繼承嗎? 首先,還是把person的所有不變屬性,都放到它的prototype物件上。遍歷prototype裡面的屬性把person裡面的屬性方法拷貝給man.

第五種寄生繼承:

首先我們先用乙個空的物件,先把person.prototype的屬性傳給這個空物件,fn是空物件,所以幾乎不佔記憶體。這時,修改man的prototype物件,就不會影響到person的prototype物件了.

Js物件繼承小結

1.繼承 物件的定義好用一些的一般是把例項物件的屬性定義在類裡面,通過this指標指向具體例項屬性.定義物件的public方法時將其繫結到prototype中.子類在繼承父類時可以通過物件冒充來繼承父類的例項屬性,通過原型指向父類例項來繼承public方法。具體例項如下 父類的定義 function...

js基礎 繼承

1 實現繼承 原型鏈 function extend1 function extend2 extend2.prototype new extend1 extend2繼承了extend1中的屬性 父型別的例項化物件賦值給子型別的原型屬性,父型別中的建構函式和原型資訊都會給extend2 var ext...

js基礎 繼承

js 繼承是乙個非常強大的特性之一。首先,我們定義乙個需要實現繼承的父類,定義乙個人的基類 function people name,age people.prototype.hello function 1 原型鏈繼承 function woman woman.prototype new peop...