ES6 類的繼承 及 類的靜態方法

2021-10-04 17:50:04 字數 1253 閱讀 3868

通過 extends 和 super 來實現繼承效果

子類通過 extends 關鍵字來繼承 父類所有的屬性和方法

子類必須在 constructor 中呼叫 super 方法,否則新建例項會報錯

class

person

// 類似 物件原型中的方法

speak()

}let person =

newperson

("父類"

);

class

sonextends

person

// 父類中也有 speak方法

// 這裡 存在優先順序問題

// speak()

say(

),愛好$`

)}}let son =

newson

("alice",24

) son.

say();

// 子類中的speak方法注釋起來後,仍然可以呼叫

// 將子類的 speak方法 解開後

// 會發現呼叫的結果變為了 i can speak japanese!

son.

speak()

;

靜態寫法 :

有 static關鍵字,表明該方法是乙個靜態方法

需要通過類名來呼叫,而不是在例項 ( this )上呼叫

如果使用this呼叫,或者在該方法中使用this。均會出現異常

靜態方法可以和非靜態方法重名 ( 不推薦這樣 )

父類的靜態方法,可以被子類繼承

class

person

static

sum(

)newstr()

`// 通過this 拿到上面 sum() 的結果

console.

log(

`我是很大的那個$和

$`);

}}// static 方法靜態 this 是不允許存在的,只能用 類名 person 呼叫

console.

log(person.

sum())

; console.

log(person.admin)

;let person =

newperson(20

,50);

person.

newstr()

;

es6 類的繼承

function animal name animal.prototype.drink function animal.prototype.eat function item function dog name,breed animal.prototype dog.prototype animal....

ES6 類的繼承

類的繼承 super 關鍵字 子類通過 extends 關鍵字來繼承父類的所有屬性和方法 子類必須在constructor中呼叫super方法,否則新建例項會報錯 es5的繼承中,實質是先創造子類的例項物件this,然後再將父類的方法 屬性新增到this上面。es6的繼承中,實質是先創造父類的例項物...

ES6類的繼承

es6 引入了關鍵字class來定義乙個類,constructor是構造方法,this代表例項物件。constructor相當於python的init而this則相當於self 類之間通過extends繼承,繼承父類的所有屬性和方法。super關鍵字,它代指父類的this物件,子類必須在constr...