JavaScript類的繼承多種實現方法
阿新 • • 發佈:2020-06-01
類的繼承
1 子承父業
extends(繼承父類的普通函式)(方法)
class Father { constructor() { } money() { console.log(100); } } class Son extends Father { } class sunzi extends Son { } var yxf = new Father; var lbw = new Son; var bb = new sunzi; console.log(yxf.money()); console.log(lbw.money()); console.log(bb.money());
super的用法
用於訪問和呼叫物件父類上的函式。可以呼叫父類的建構函式,也可以呼叫父類的普通函式(方法)
class Father1 { constructor(x,y) { this.x = x; this.y = y; } sum() { console.log(this.x + this.y); } } class Son1 extends Father1 { constructor(x,y){ super(x,y); } } var yxf = new Son1(1,2); yxf.sum();
super關鍵字呼叫就近原則
<script> //super關鍵字呼叫父類普通函式 class Father { say() { return '我是爸爸'; } } class Son extends Father { say() { // return '我是兒子'; console.log( super.say()); } } var yxf = new Son(); yxf.say();//返回結果:我是兒子 就近原則 //繼承中的屬性或方法查詢原則:就近原則 //1.繼承中,如果例項化子類輸出一個方法,先看子類有沒有這個方法,如果有就先執行子類; //2.繼承中,如果子類裡面沒有,就去查詢父類有沒有如果有就用父類 </script>
子類繼承父類,同時擴充套件自己的方法
注意:子類子建構函式使用super 必須放到this的前面(必須先呼叫父類的構造方法 再使用子類的構造方法)父親永遠是第一位的!!!!
<script> class Father { constructor(x,y){ this.x = x; this.y = y; } sum() { console.log(this.x + this.y); } } // 子類繼承父類加法 同時擴充套件減法 class Son extends Father { constructor(x,y) { //利用super呼叫父類的建構函式 //super 必須在子類this之前呼叫 super(x,y); this.x = x; this.y = y; } sub() { console.log(this.x - this.y); } } var son = new Son(1,2); son.sum(); son.sub(); </script>
<script> //super關鍵字呼叫父類普通函式 class Father { say() { return '我是爸爸'; } } class Son extends Father { say() { // return '我是兒子'; console.log( super.say()); } } var yxf = new Son(); yxf.say();//返回結果:我是兒子 就近原則 //繼承中的屬性或方法查詢原則:就近原則 //1.繼承中,如果例項化子類輸出一個方法,先看子類有沒有這個方法,如果有就先執行子類; //2.繼承中,如果子類裡面沒有,就去查詢父類有沒有如果有就用父類 </script>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。