1.4 クラスのconstructorについて
前回、TypeScriptの基本的な文法について学びました。特にクラスの宣言について見てきましたが、その中でconstructor
という特殊なメソッドについて触れました。今回は、このconstructor
について詳しく見ていきましょう。
constructor
は、クラスがインスタンス化される際、つまり新しいオブジェクトが作成される際に自動的に呼び出される特別なメソッドです。そのため、クラス内で定義した変数(プロパティ)の初期化など、オブジェクトが作成されるときに必要な処理をこのconstructor
内に書くことが多いです。
class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
}
上記のコードでは、Person
クラスにname
とage
という2つのプロパティがあります。そして、constructor
がname
とage
という2つのパラメータを受け取り、それぞれをthis.name
とthis.age
に代入しています。
ここでのthis
は、作成されるオブジェクト自身を指します。つまり、this.name = name;
という行は、「作成されるこのオブジェクトのname
プロパティに、constructor
の引数として渡されたname
を代入する」という意味になります。
それでは、実際にPerson
クラスのインスタンスを作成してみましょう。
let john = new Person("John Doe", 25);
このコードでは、new
キーワードを使ってPerson
クラスの新しいインスタンス(オブジェクト)を作成しています。その際、Person
クラスのconstructor
に定義されたパラメータに対応する値(この場合は"John Doe"と25)を引数として渡しています。
このとき、constructor
が自動的に呼び出され、this.name = name;
とthis.age = age;
という行により、作成されるオブジェクトのname
プロパティには"John Doe"が、age
プロパティには25がそれぞれ代入されます。
以上が、クラスのconstructor
についての基本的な説明です。constructor
はクラスの中心的な部分であり、オブジェクト指向プログラミングの理解にも重要な役割を果たします。次回は、TypeScriptの型システムについて学んでいきましょう。