Written by Kasumi

JavaScriptでクラスを継承。親の関数・メソッドを子で呼び出す方法

JavaScriptでクラスを継承し、子クラスを作成。

親クラスの関数・メソッドを子クラスで呼び出したい。

本記事ではこのような悩みを解決。

実装例を元に解説します。

クラスを継承する

// 親クラス
class Intro {
  constructor(name) {
    this.name = name;
  }
  hello() {
    console.log("初めまして" + this.name + "です。");
  }
}

// 子クラスへ継承
class Age extends Intro {}

// 子クラスをインスタンス化
const kasumi = new Age("kasumi","30");

// コンソールにhelloメソッドを出力
console.log(kasumi.hello());

// 初めましてkasumiです。

クラスを継承するコード例です。

Introクラスを元に、Ageクラスを作成。

Ageクラスをインスタス化。

上記クラスから親Introクラスのhelloメソッドを使い、コンソールにテキストを出力してます。

クラスの継承にはextendsキーワードを使います。

extendsの使い方は以下の通りです。

class 子クラス名 extends 親クラス名 {}

上記のように記述する事で親クラスの関数・メソッドを引き継いだ子クラスを定義できます。

親クラスの関数・メソッドを呼び出す

// 親クラス
class Intro {
  constructor(name) {
    this.name = name;
  }
  hello() {
    console.log("初めまして" + this.name + "です。");
  }
}

// 子クラスへ継承
class Age extends Intro {
  constructor(name, age) {
    super(name);
    this.age = age;
  }
  hello() {
    super.hello();
    console.log("年齢は " + this.age + "歳です。");
  }
}

// 子クラスをインスタンス化
const kasumi = new Age("kasumi", "30");
// コンソールにhelloメソッドを出力
console.log(kasumi.hello());
// 初めましてkasumiです。
// 年齢は 30歳です。

子クラスから親クラスの関数・メソッドを呼び出すコード例です。

親Introクラスのコンストラクタ関数で定義されたnameプロパティを子Ageクラスへ呼び出し。

新たにageプロパティをオブジェクトに追加してます。

また、親Introクラスのhelloメソッドも呼び出してます。

子クラスから親クラスの関数・メソッドを呼び出すにはsuperキーワードを使います。

親のコンストラクタを呼び出す場合
super(…)

親のメソッドを呼び出す場合
super.メソッド名(…)

上記のように使用します。

以上で親クラスの関数・メソッドを呼び出す事が可能になります。

まとめ

JavaScriptでクラスを継承。親の関数・メソッドを子で呼び出す方法について紹介しました。

以上で解説を終わります、

目次

関連記事

JavaScript

JavaScriptで参照先オブジェクトからthisが渡らない時の対処方法

2022.12.10
1285
JavaScript

【JavaScript】キーボードで入力したキー値を取得する方法

2023.01.23
1514
JavaScript

【JavaScript】スプレット構文(…)を使い、配列・オブジェクトを追加・連結(マージ)する方法

2022.12.04
722
JavaScript

【JavaScript】URLからパラメータを削除する方法

2023.04.13
5358