JavaScript/Object/prototype/constructor
表示
Object.prototype.constructor
[編集]Object.prototype.constructor() は、オブジェクトを作成したコンストラクタ関数への参照を返すプロパティです。すべてのオブジェクトは、自身の constructor
プロパティを通じてそのオブジェクトを生成したコンストラクタにアクセスできます。
構文
[編集]obj.constructor
説明
[編集]- オブジェクトを生成する際、プロトタイプチェーンを通じてそのオブジェクトの
constructor
プロパティが設定されます。 - 通常、
constructor
プロパティはオブジェクトが生成されたコンストラクタ関数を指します。 - カスタムプロトタイプを設定した場合、
constructor
プロパティが期待する値を指していないことがあるため、注意が必要です。
=== 使用例 === 以下の例は constructor
プロパティの動作を示します:
// 通常のオブジェクトの場合 const obj = {}; console.log(obj.constructor); // [Function: Object] // カスタムクラスの場合 class MyClass {} const myInstance = new MyClass(); console.log(myInstance.constructor); // [Function: MyClass] // プロトタイプの変更 function MyConstructor() {} MyConstructor.prototype = {}; const instance = new MyConstructor(); console.log(instance.constructor); // [Function: Object]
注意点
[編集]- プロトタイプを直接変更した場合、
constructor
プロパティが適切に設定されないことがあります。その場合、明示的にconstructor
プロパティを再設定する必要があります。 constructor
プロパティは開発時のデバッグや型チェックに役立ちますが、厳密な型判定には向いていません。