通過某種方式
讓乙個物件可以訪問到另乙個物件中的屬性
和方法
,我們把這種方式稱之為繼承
下面來講幾個常用的繼承方法優點:可以讓子建構函式繼承父建構函式的原型上的屬性和方法
缺點:不可以傳引數
舉個麻辣栗子:
//父建構函式
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.可以宣告父類,建立子類 又...