ES6 類繼承 和 super的使用

2021-09-12 18:15:24 字數 845 閱讀 7089

es6繼承 詳細類容參考:

1、super()使用

class a 

}class b extends a

}let b = new b(1, 2, 8);

// 1 "---" 2 "----" 8 "----"

注意:es6中繼承的子類中,如果使用建構函式constructor()那麼就必須使用 super()方法初始化,這樣下面才可以呼叫this關鍵字。super()只能用在子類的建構函式之中,用在其他地方就會報錯。

子類必須在constructor方法中呼叫super方法,否則新建例項時會報錯。這是因為子類自己的this物件,必須先通過父類的建構函式完成塑造,得到與父類同樣的例項屬性和方法,然後再對其進行加工,加上子類自己的例項屬性和方法。如果不呼叫super方法,子類就得不到this物件。 ---阮一峰

2、父類中的靜態方法,子類中可以通過類名直接呼叫

class a2 

}class b2 extends a2

}b2.hello();

// hello world

3、object.getprototypeof()判斷子類繼承的父類

object.getprototypeof(b2);

// a2

log()

當引數數量不確定時,函式內部也可以通過 arguments 這個偽陣列來遍歷所有的引數。

ES6 類繼承 和 super的使用

es6繼承 詳細類容參考 1 super 使用 class a class b extends a let b new b 1,2,8 1 2 8 注意 es6中繼承的子類中,如果使用建構函式constructor 那麼就必須使用 super 方法初始化,這樣下面才可以呼叫this關鍵字。super...

ES6 類繼承 和 super的使用

es6繼承 詳細類容參考 1 super 使用 class a class b extends a let b new b 1,2,8 1 2 8 注意 es6中繼承的子類中,如果使用建構函式constructor 那麼就必須使用 super 方法初始化,這樣下面才可以呼叫this關鍵字。super...

ES6 類和繼承

class person 等價於 person.prototype.showname showname let p1 new person aaaa 12 表示式形式 const person class let p1 new person aaaa 12 變數定義方法名 let aaa ssss ...