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