コンストラクタは、インスタンス生成のための関数のこと(コンストラクタ関数という)。
JavaScriptでは、関数もオブジェクトであり「関数オブジェクト」と呼ぶ、
JavaScriptには基本的にはクラスという概念はなく、オブジェクトの作成には以下の2通りがあります。
- 空のオブジェクトを作成する(new演算子なし)
例)
var test = {};
- コンストラクタからインスタンスを作成する(new演算子あり)
例)
function Test() {};
var test = new Test();
new演算子によるインスタンス生成
「new」を付けることで、生成されるインスタンスが「this」にセットされる。
//コンストラクタの定義
function Cat(name, cry) {
this.name = name;
this.meow = function() {
console.log(cry);
};
}
//コンストラクタからインスタンスを生成する
var cat = new Cat('たま', 'にゃんにゃん');
console.log(cat.name); // たま
cat.meow(); // にゃんにゃん
生成したインスタンスのプロパティを利用するには、cat.nameのように「インスタンス名.プロパティ名」と書く。そしてcat.meow()のようにメソッドとして呼び出す。