1.介面繼承在ecmascript中是不可能的,因此實現繼承是ecmascript唯一支援的繼承方式,因此顯示中主要是通過原型鏈繼承。
subtype的原型指向supertype的原型,因此繼承它的所有原型上的屬性和方法,若例項把所繼承來的方法遮避了,相當於建構函式下的方法被重寫了。
2.原型和繼承的關係:
(1)instanceof():例項的原型鏈**現過相應的函式—>返回true。
(2)isprototypeof()
3.重點理解:
以物件字面量方式建立原型方法會破壞之前的原型鏈,相當重寫原型鏈。
解決方法:
(1)盜用建構函式,用call():
優點:傳遞引數。
缺點:需在建構函式中定義方法,因此函式不能呼叫。
因此,採用組合繼承:
組合繼承(為經典繼承):綜合了原型鏈和盜用建構函式。
基本思路:
使用原型鏈繼承原型上的屬性和方法,而通過盜用建構函式繼承例項屬性。
原型 原型鏈 繼承
原型 是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...
JS組合繼承相比原型鏈繼承的優勢
原型繼承 父 建構函式 function father this.name foo this.family jack tom james father.prototype.sayname function console.log this.name father.prototype.sayfamil...