0
1

コンストラクタについて正しく理解する

Posted at

目次

  1. コンストラクタとは
  2. 暗黙的にインスタンスを返す
  3. 異なるオブジェクトを返す

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'}

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1