【Javascript ES6 & React】: Class・extends・super(); の使い方についての復習まとめ

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

関連キーワード
Javascript/React/Reduxの関連記事
  • プログラミング学習44
    Javascript React: CSS modulesとは?使い方について詳しく説明してあるサイトのリンクまとめ
  • プログラミング学習42
    Javascript:条件(三項)演算子とは何?定義・読み方・使い方まとめ(例文あり): How to read and use The Conditiong (Ternary) Operator with Demo code
  • プログラミング学習41
    DOMとは何か?JavaScriptやhmtlとの違いとは?定義のまとめ
  • Javascript ES6の分割代入(destructuring)の使い方まとめ: 配列とオブジェクトそれぞれの場合: Descructuring for Arrays and Objects
  • Javascript ES6: スプレッド構文(演算子)とレスト構文(パラメータ)の使い方まとめ:Spread Operator & Rest Operator
  • 【Javascript ES7 & React】constructorやsuper(); this.を使わないClassの新しい書き方: Classes&Properties & Methods【ES6との違い】
おすすめの記事
【Javascript ES7 & React】constructorやsuper(); this.を使わないClassの新しい書き方: Classes&Properties & Methods【ES6との違い】
Javascript/React/Redux
ES7でのclassの書き方、 さらにmethods、 propertiesのコーディングについてまとめました。ES7では(ES6と違って)...