JavaScript | クラス継承でアロー関数を使うときの実務的な注意点

JavaScript JavaScript
スポンサーリンク

では「継承と super を使いつつ、アロー関数と通常メソッドを混ぜる複合例」を作ってみましょう。


例:Animal → Dog クラス

class Animal {
  constructor(name) {
    this.name = name;
  }

  // ✅ 通常メソッド(親クラスの基本動作)
  speak() {
    console.log(`${this.name} が鳴いた`);
  }
}

class Dog extends Animal {
  constructor(name) {
    super(name); // 親クラスのコンストラクタ呼び出し
  }

  // ✅ 通常メソッド(superを使って親の処理を拡張)
  speak() {
    super.speak(); // 親の speak を呼ぶ
    console.log("ワン!");
  }

  // ✅ アロー関数(イベントハンドラやコールバック用)
  bark = () => {
    console.log(`${this.name} が元気にワンワン!`);
  };
}

// --- 動作確認 ---
const d = new Dog("ポチ");
d.speak(); // 親と子の両方の処理が実行される
// 出力:
// ポチ が鳴いた
// ワン!

// コールバックに渡しても this が壊れない
setTimeout(d.bark, 1000);
// 1秒後: ポチ が元気にワンワン!
JavaScript

💡 解説

  • speak(通常メソッド)
    • super.speak() を呼んで親クラスの処理を拡張できる。
    • 継承でのオーバーライドは通常メソッドで書くのが基本。
  • bark(アロー関数)
    • コールバックに渡しても this が固定されているので安全。
    • イベントハンドラや非同期処理に便利。

✅ まとめ

  • 親クラスの処理を拡張する → 通常メソッド(superが必要だから)
  • イベントハンドラやコールバックで使う → アロー関数(this固定が便利だから)
  • 両方を組み合わせることで「継承の恩恵」と「イベント処理の安全性」を両立できる。

👉 ここまでで「継承+super」と「アロー関数」の役割分担が整理できました。

タイトルとURLをコピーしました