繼承的實現方式之 原型鏈

2022-08-11 07:27:07 字數 1364 閱讀 5786

原型鏈實現繼承

基本模式

function

supertype()

supertype.prototype.getsupervalue = function

()function

subtype()subtype.prototype= new

supertype();

//這一步和上一步不可以調換順序,否則getsubvalue會被新的supertype例項覆蓋

subtype.prototype.getsubvalue = function

()let instance = new

subtype();

console.log(instance.getsupervalue());

過程圖示1. 

function

supertype()

supertype.prototype.getsupervalue = function

()function

subtype()

建立子類父類建構函式,各自自動生成預設的prototype。其中supertype的原型上新增了方法getsupervalue。

new supertype() 實現的效果:

()

為新的prototype新增乙個方法:

問題

原本在父類上屬於例項的屬性在繼承後變成了子類的原型屬性

建立subtype例項時,無法在向supertype的建構函式傳參,從supertype繼承來的屬性值不能自定

對繼承來的引用型別的屬性,在任乙個例項上做的修改會體現在所有例項上

js之原型鏈 繼承

首先來總結一下自己對原型鏈的的理解,直白的說就是 為例項物件查詢方法屬性提供乙個橋梁,在原型鏈中,proto 是至關重要的東西,上圖 繼承,說白了就是繼承父親的屬性,方法 繼承屬性可以使用father.call this,name,age,來實現 繼承方法就不行了,得使用原型物件的查詢機制 發不多說...

原型 原型鏈 繼承

原型 是function物件的乙個屬性,它定義了建構函式 製造出的物件 的公共祖先。通過該建構函式產生的物件,可以繼承該原型的屬性和方法。原型也是物件 這定義有點模糊,用 解釋一下 我們在控制台中列印出了這個,首先son物件的建構函式是foo,但是我們的foo中什麼屬性都沒有,怎麼會出現乙個 pro...

原型 原型鏈 繼承

在 js 中,一切皆物件!下面就讓我們從建立物件開始,逐步學習js中的核心知識 原型,原型鏈,繼承等 1.字面量方式建立物件 var obj var obj1 2.使用 new object 的方式建立物件 var obj2 new object obj2.name 張三 obj2.age 13 o...