クラスとスーパー


JavaScript ES 6で提供されているclassとsuperキーワードの使い方を知りたいです.

1.Class


classは、オブジェクトを生成するためのテンプレートです.クラスはデータと処理データのコードを1つに抽象化し、JavaScriptのクラスはプロトタイプを使用して作成されますが、ES 5のクラスの意味とは異なる構文と意味を持っています.
Classは実は特別な関数です.
クラス構文には、クラス宣言とクラス式の2つの方法があります.

1.クラス宣言

class Human {
  constructor(name) {
    this.name = name;
  }
  sleep() {
    console.log('잠든다');
  }
}
前述したように、クラス宣言です.

2.クラス式

let Human = class {
  constructor(name) {
    this.name = name;
  }
  sleep() {
    console.log('잠든다');
  }
}
前述したようにClass式です.
これは、関数宣言と関数式と同じです.

2. super


superは、親オブジェクトを呼び出す関数です.
super([arguments]); // 부모 생성자 호출
super.functionOnParent([arguments]); // 부모 메소드 호출
コンストラクション関数でsuperを使用する場合、superのみが単一であるか、キーワードを使用する前に呼び出す必要があります.
上記で作成したクラスを使用して例を作成します.
class Student extends Human {
  constructor(name,grade){
    super(name);
    this.grade = grade;
  }
  sleep() {
    super.sleep();
    console.log('니 성적에 잠이오냐?');
  }
}
HumanをStudentというクラスに継承し、Humanのジェネレータをsuper(name)で呼び出し、Humanメソッドをsuper.sleep()で呼び出します.
(継承性も多形性も使用できます.)