クラス構文

ES5 でオブジェクト指向プログラミングを実現するのは面倒で直感的ではありませんでしたが、ES2015 では新たにクラス構文が追加され、以下のように簡単にクラスを定義することが可能となりました。

class Car {

  run() {
    console.log('running!');
  }

}

Car のインスタンスを生成するには new キーワードを使用します。

new Car().run();

インスタンスの初期化処理を定義するには constructor 関数を定義します。this はインスタンス自体を指します。

class Car {

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

  run() {
    console.log(`${this.name} is running!`);
  }

}

new Car('porsche').run();

アクセサプロパティ

getset キーワードを用いて、クラスのフィールドにアクセスするためのアクセサプロパティを定義することができます。

class Car {
  constructor(name) {
    this._name = name;
  }

  get name() {
    console.log('get');
    return this._name;
  }

  set name(name) {
    console.log('set');
    this._name = name;
  }
}

const car = new Car('porsche');
console.log(car.name);
car.name = 'benz';
console.log(car.name);
  • getter/setter

継承

extends キーワードを用いてクラスの継承を行うことができます。同一の名称のメソッドが定義されている場合はオーバーライドされます。

class Vehicle {
  run() {
    console.log('running');
  }
}

class Car extends Vehicle {
  run() {
    console.log('Car is running.');
  }
}

class MotorCycle extends Vehicle {
}

new Car().run();
new MotorCycle().run();

results matching ""

    No results matching ""