常用的繼承方法

2021-10-10 19:35:02 字數 2042 閱讀 1743

通過某種方式讓乙個物件可以訪問到另乙個物件中的屬性方法,我們把這種方式稱之為繼承

下面來講幾個常用的繼承方法優點:可以讓子建構函式繼承父建構函式的原型上的屬性和方法

缺點:不可以傳引數

舉個麻辣栗子:

//父建構函式

function fu(name,age)

} //例項化物件

//let f=new fu(

) //小三 22

//讓子建構函式繼承父建構函式的原型的屬性和方法

zi.prototype = new fu(

) // 繼承的關鍵

//子建構函式

function zi(name,age)

//let z=new zi(

)

let zi=new zi(

'爸爸1',100) // 傳參無效

優點:可以傳參缺點:不可以繼承父建構函式中原型的屬性和方法

在子建構函式內,使用call()呼叫父建構函式的方法,並將父建構函式的this修改為子建構函式的this。相當於是把父建構函式的例項屬性複製了乙份放到子建構函式中。

原型鏈繼承和借用建構函式繼承的組合使用

function fu(name)

fu.prototype.country =

'中國'

; fu.prototype.eat = function(

) zi.prototype = new fu(

) // 原型鏈繼承

function zi(

) var z = new zi();

console.log(z.name)

; console.log(z.country)

z.eat(

);

既能呼叫父構造例項屬性,又能呼叫父構造原型屬性

//class 相當於es5中建構函式

//class中定義方法時,前後不能加function,全部定義在class的protopyte屬性中

//class中定義的所有方法是不可列舉的

//class中只能定義方法,不能定義物件,變數等

//class和方法內預設都是嚴格模式

//es5中constructor為隱式屬性

class fu //多個函式方法之間不用加逗號

say()`

)}} class zi extends fu

say()}

// es6中沒有變數提公升,所以必須先定義類,才通過例項化物件

let zi=new zi(

) // 也可以傳參

console.log(zi)

zi.say(

) //繼承的父類的方法

JS實現繼承的常用方法

1 建構函式繼承 function parent name parent.prototype.saihi function function child name,age,gender let child new child 王磊 20,男 console.log child.name 王磊 chi...

js中繼承(拷貝)的幾種常用方法

尋尋覓覓,尋尋覓覓,你終於找到了這兒。話不多說,直接開擼,我們先從最簡單的淺拷貝開始 這裡關於淺拷貝,我總結了三種方法,我們先來定義兩個物件 var person var prog 1 通過 for 迴圈來實現 function extend p,c for var prop in p extend...

方法的繼承

繼承是從已有的類中派生出新類,新的類能吸收已有類的資料屬性和行為,並能擴充套件新的能力。class b extends a 1.只支援單繼承,即乙個子類只允許有乙個父類。2.子類可以擁有父類的屬性和方法 3.子類可以擁有自己的屬性和方法 4.子類可以重寫覆蓋父類的方法 5.可以宣告父類,建立子類 又...