01 / 04
同じ形をまとめて作る(クラス)
INPUT · スライド
子だけの機能を足す
02 / 04
子クラスの中に書くだけ
書き方は今までのメソッドと同じ。子クラスの { } の中に書けばいいよ。
子のインスタンスは、親から引き継いだメソッドと、自分だけのメソッドの両方を持つことになる。
class Vehicle { constructor(name) { this.name = name; } run() { console.log(`${this.name}がはしる`); }}class Truck extends Vehicle { load() { console.log(`${this.name}につみこむ`); }}const t = new Truck("おおきいトラック");t.run();t.load();実行結果
おおきいトラックがはしる おおきいトラックにつみこむ
03 / 04
子のメソッドでも this は使える
子クラスに書いたメソッドからでも、親が用意したプロパティを this で読めるよ。上の load が this.name を使えているのがその証拠だね。
引き継いだ時点で、それは自分のものになっていると考えていいよ。
04 / 04
引き継ぎは一方通行
気をつけたいのは逆向き。Vehicle から作ったインスタンスに load() は無いよ。子で足したものは親には届かない。
迷ったときの目安はこれ。
- どの子にも当てはまる → 親に書く
- その子だけのもの → 子に書く
ここから書いてみよう。