クラスとスーパー
JavaScript ES 6で提供されているclassとsuperキーワードの使い方を知りたいです.
classは、オブジェクトを生成するためのテンプレートです.クラスはデータと処理データのコードを1つに抽象化し、JavaScriptのクラスはプロトタイプを使用して作成されますが、ES 5のクラスの意味とは異なる構文と意味を持っています.
Classは実は特別な関数です.
クラス構文には、クラス宣言とクラス式の2つの方法があります.
これは、関数宣言と関数式と同じです.
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()
で呼び出します.(継承性も多形性も使用できます.)
Reference
この問題について(クラスとスーパー), 我々は、より多くの情報をここで見つけました https://velog.io/@younghoss/Class와-superテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol