JavaScriptクラスコンストラクタ
例
Carクラスを作成し、Carクラスに基づいて「mycar」というオブジェクトを作成します。
class Car {
constructor(brand) { // Constructor
this.carname = brand;
}
}
mycar = new Car("Ford");
以下の「自分で試してみてください」の例をもっと見てください。
定義と使用法
このconstructor()
メソッドは、クラス内で作成されたオブジェクトを作成および初期化するための特別なメソッドです。
このconstructor()
メソッドは、クラスが開始されると自動的に呼び出され、正確な名前は「コンストラクター」である必要があります。実際、コンストラクターメソッドがない場合、JavaScriptは非表示の空のコンストラクターメソッドを追加します。
注:クラスに複数のconstructor()メソッドを含めることはできません。これはをスローしSyntaxError
ます。
このメソッドを使用してsuper()
、親クラスのコンストラクターを呼び出すことができます(以下の「その他の例」を参照)。
ブラウザのサポート
constructor()
ECMAScript6(ES6)機能です。
ES6(JavaScript 2015)は、最新のすべてのブラウザーでサポートされています。
Chrome | Edge | Firefox | Safari | Opera |
Yes | Yes | Yes | Yes | Yes |
constructor()
Internet Explorer 11(またはそれ以前)ではサポートされていません。
構文
constructor(parameters)
技術的な詳細
JavaScriptバージョン: | ECMAScript 2015(ES6) |
---|
その他の例
クラス継承を作成するには、extends
キーワードを使用します。
クラス継承で作成されたクラスは、別のクラスからすべてのメソッドを継承します。
例
「Car」クラスからメソッドを継承する「Model」という名前のクラスを作成します。
class Car {
constructor(brand) {
this.carname =
brand;
}
present() {
return 'I have a ' + this.carname;
}
}
class Model extends Car {
constructor(brand, mod) {
super(brand);
this.model = mod;
}
show() {
return this.present() + ', it is a ' + this.model;
}
}
mycar = new Model("Ford", "Mustang");
document.getElementById("demo").innerHTML
= mycar.show();
このsuper()
メソッドは親クラスを参照します。
コンストラクターメソッドでメソッドを呼び出すことによりsuper()
、親のコンストラクターメソッドを呼び出し、親のプロパティとメソッドにアクセスします。
関連ページ
JavaScriptチュートリアル:JavaScriptクラス
JavaScriptチュートリアル:JavaScript ES6(EcmaScript 2015)
JavaScriptリファレンス:extendsキーワード
JavaScriptリファレンス:スーパーキーワード