JavaScript類的繼承多種實現方法
類的繼承
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>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章: