りよねこたわ~

ロールプレイングゲーム作ってみたいにゃ~でもどうしたらいいのにゃ~?

コンストラクタにゃ~

rpg_scenes.jsを見たら最初のほうにconstructorって書いてあったにゃ~。

ω・`) コンストラクタってなんにゃ~?

 

そもそもコンストラクタとは何なのでしょう?

日本語に訳すと「構築子」になり、インスタンス(実体)を作成する関数のことをコンストラクタと呼びます。

コンストラクタによってインスタンスを作り、初期化も行います

オブジェクト指向言語にあるクラスも、変数と同じようにインスタンスを初期化する必要があり、そのときにコンストラクタを使います。

 

 JavaScriptにはクラスがないんだってにゃ~。

関数オブジェクトとコンストラクタを使うことで、疑似的なクラスを実現できる仕組みになっているらしいにゃ~。

 

function Person(name, age) {

  this.name = name;

  this.age = age;

}

Personというコンストラクタを定義して、その中に名前を表すnameと、年齢を表すageのプロパティを定義しています。

「this」を付けているのにも理由があります。

実際にインスタンスを作成する際は、以下のように「new Person()」でコンストラクタを呼び出して使います。

var person1 = new Person('太郎', 22);
var person2 = new Person(‘次郎', 31);
 
console.log( person1.name );
console.log( person1.age );
 
console.log( person2.name );
console.log( person2.age );

 

太郎
22
 
次郎
31

 「new」を付けることで、生成されるインスタンスが「this」にセットされるわけです。

上記のサンプルコードでは「new Person(‘太郎’, 22)」のthisにperson1がセットされ、「new Person(‘次郎’, 31)」のthisにperson2がセットされます。 

ω・`) ほぇほぇにゃ~。