千鋒教育JavaScript全套視頻教程(10天學(xué)會(huì)Js,前端javascrip

P133 面向?qū)ο罄^承
ES6部分
繼承是面向?qū)ο缶幊讨械囊环N機(jī)制,它允許一個(gè)類從另一個(gè)類中繼承屬性和方法。被繼承的類稱為父類或超類(super),繼承這些屬性和方法的類稱為子類。
繼承的主要優(yōu)勢(shì)是代碼重用。通過(guò)繼承,子類可以直接使用父類的屬性和方法,而無(wú)需重新編寫相同的代碼。這使得代碼更易于維護(hù)和擴(kuò)展,可以提高代碼的可讀性和可靠性。
在ES5中,需要通過(guò)構(gòu)造函數(shù)繼承來(lái)繼承構(gòu)造函數(shù)內(nèi)的私有部分。
通過(guò)原型鏈繼承或者寄生繼承來(lái)繼承原型內(nèi)的公有部分。
在ES6中,引入了class語(yǔ)法糖??梢允褂胑xtends關(guān)鍵字繼承一個(gè)類,并使用super關(guān)鍵字調(diào)用父類的構(gòu)造函數(shù)和方法。
ES6的繼承語(yǔ)法更加簡(jiǎn)潔和易讀。
案例:
class Parent {
??constructor() {
????this.name = "Parent";
??}
??sayHello() {
????console.log("Hello from Parent");
??}
}
class Child extends Parent {
??constructor() {
????super();
????this.age = 10;
??}
??sayAge() {
????console.log("My age is " + this.age);
??}
}
let child = new Child();
child.sayHello(); // 輸出 "Hello from Parent"
child.sayAge(); // 輸出 "My age is 10"