目次
- コンストラクタとは
- 暗黙的にインスタンスを返す
- 異なるオブジェクトを返す
1. constructorとは
constructorメソッドは、 classで作成されたインスタンスの生成と初期化のための特殊なメソッドです。
constructor
2. 暗黙的にインスタンスを返す
関数がオブジェクトを返さない場合は this を返します。
独自のコンストラクターを提供しなかった場合は、既定のコンストラクターが提供されます。クラスが基底クラスである場合、既定のコンストラクターは空です。
constructor() {}
下のようにconstructorはreturn thisを記述してませんが、インスタンスが返されています。
class Class {
constructor() {}
}
const obj = new Class();
obj
//Class {}
class Class {
constructor(){
return this
}
}
const obj = new Class();
obj
//Class {}
constructorでプリミティブな値を返そうとすると、インスタンス(this)が自動で返されます。
class Class {
constructor(){
return 1
}
}
const obj = new Class();
obj
//Class {}
3. 異なるオブジェクトを返す
コンストラクター関数が返すオブジェクト (null, false, 3.1415 などのプリミティブ型ではないもの) が、 new 式の結果になります
constructorでオブジェクトを返そうとすると、そのオブジェクトが返されます。
class Class {
constructor(){
return {key:'value'}
}
}
const obj = new Class();
obj
//{key:'value'}