JavascriptのClassについての考え方とextends、super();の使い方についての復習とまとめです。(ES7ではconstructorやthisが一部不要になっていますが、このページではES6の復習として、constructor, super(); 等を使用したコードの書き方をまとめています。)
JavascriptのClassとは?classをextendsするとどうなる?consoleでの例。super();の使い方
新しいUdemy講座では「Classはオブジェクトの設計図」という表現をしていました。
Javascriptで以下のようなコードを書くと、結果(console)はどのようになるか、という例です。
class Human {
constructor() {
this.gender = 'male';
}
printGender() {
console.log(this.gender);
}
}
class Person extends Human {
constructor() {
super();
this.name = 'Max';
this.gender='female';
}
printMyName() {
console.log(this.name);
}
}
const person = new Person();
person.printMyName();
person.printGender();
まず、HumanというClassを作成しています。次にHumanを受け継いだclass Person extends Humanを作成。
class Person が親(Human)のconstructorを実行するにはsuper();が必要となります。class A extends B { constructor () { とくれば、必ずsuper();を書くと覚えておけば良さそうです。
このコードの場合、親(Human)ではthis.gender='male'と定義されているものの、Humanを受け継いでいるPersonでthis.gender='female'と再定義しているので、consoleに表示されるのは "Max" "female"となります。
現在学習中の教材:Udemy: React -The Complete Guide(incl Hooks, React Router, Redux) by maximilian Schwarzmuller
Section 1: Getting Started
Section2: Refreshing Next Generation Javascript (Optional)
11~15 このブログの内容は15. Understanding Classes
参照:reactjs.org (React公式/基礎的な使い方)
【私も学習中のUdemy講座の公式HPはこちら⇒】世界最大級のオンライン学習サイトUdemy![]()