一,什麼是繼承
是建構函式之間的相關應用
繼承的是屬性和方法
是子集從父級繼承
常見的繼承方法有,原型繼承,建構函式繼承,es6繼承
二,建構函式
es5定義建構函式
// 建構函式
function
father
(name,age)
father.prototype.
fun1
=function()
father.prototype.
fun2()
=function()
es6繼承的方法
function
father
(name,age)
class
sonextends
father
//定義方法f(
)}// 通過建構函式來生成例項化物件
const s=
newson
("張三"
,"18"
,"男"
) s.f(
)//執行例項化物件s中的f函式
// new的三個步驟
// 1,生成乙個例項化物件
// 2,執行例項化物件中的函式
// 3,改變this指向
三,原型屬性和原型物件
1,每個物件都有乙個 __proto__原型屬性
2,每個函式都有乙個 prototype 原型物件
萬物皆物件所以任何資料型別都有proto原型屬性
四,原型鏈
例項化物件中的proto指向建構函式的prototype
一直與上一級形成資料鏈
最後指向js的頂級物件object
五,建構函式和例項化物件
建構函式時專門生成例項化物件的函式
例項化物件就是通過建構函式生成的物件
六,建構函式定義函式的屬性和方法
七,原型繼承
原型繼承主要繼承方法
繼承時兩個建構函式之間的應用
兩個建構函式通過原型鏈進行串聯
兩個建構函式生成的例項化物件,將兩個建構函式,形成乙個原型繼承
原型繼承
定義父級建構函式,使用父級建構函式,生成例項化物件
定義子級建構函式
子級建構函式.prototype=父級建構函式的例項化物件
原型繼承最主要的是繼承方法
八,借用建構函式繼承(主要是繼承屬性,沒有繼承方法)
建構函式中的this指向的是生成的例項化物件
function
father
(name,age)
father.prototype.fn=
function()
function
son(***)
const s=
newson
("nan"
) console.
log(s)
主要通過.call方法在子級建構函式中呼叫父級建構函式
並且將父級的建構函式this指向改變成當前的子級建構函式
父級建構函式原始的this指向是指向生成的例項化物件
當前要讓father的this指向son這個子級建構函式,也就是子級建構函式生成的例項化物件
九,組合繼承
就是原型繼承的方法和建構函式繼承的屬性結合在一起,繼承父級的方法和屬性
總結所謂的繼承就是為了優化**
繼承是兩個建構函式之間的應用,不用重複定義,達到了,優化**,優化程式的作用
es5的繼承有三種,原型繼承繼承方法,建構函式繼承,繼承屬性,組合繼承j繼承屬性和方法
一般使用es6繼承,可以繼承屬性和方法class extends constructor super
關於繼承的理解
一.基本概念 類之間的關係 繼承就是在已有類的基礎上建立新類的過程 已有的類叫做基類或父類,新類則叫做派生類或子類 二 基類和派生類 一 類繼承關係的語法形式 class 派生類名 基類名錶 基類名錶的構成 訪問控制 基類名1,訪問控制 基類名2,訪問控制 基類名n 訪問控制表示派生類對基類的繼承方...
有關繼承的理解
繼承 類與類之間的關係,子類往往是繼承了父類,用關鍵字extends來宣告子類。滿足is a。也就是說,子類必須是乙個父類的擴充套件,或者是乙個父類,或者像乙個父類。優點 提高了 的復用性和可維護性。對於子類而言,父類中除去私有變數之外,其他方法和變數都可以在子類中使用,而子類也可以定義新的變數和方...
對於繼承的理解
1.什麼是繼承?繼承其實就是乙個類繼承乙個類中的某些屬性,是類與類之間的關係 就好比子承父業,兒子繼承了父親的東西。如果b類繼承了a類,那麼b類中就會有a類屬性,方法。2.關鍵字 extends 乙個類繼承另乙個類就要用到extends這個關鍵字,class b extends a b繼承a,a是父...