コンテンツにスキップ

JavaScript/Object/prototype/constructor

出典: フリー教科書『ウィキブックス(Wikibooks)』

Object.prototype.constructor は、オブジェクトのコンストラクタ関数を参照するプロパティです。このプロパティは、オブジェクトがどのコンストラクタ関数によって作成されたかを示します[1]

構文

[編集]
obj.constructor
  • obj: コンストラクタ関数を参照する対象のオブジェクト。

[編集]

オブジェクトのコンストラクタを参照するプログラム

[編集]

以下のプログラムは、Object.prototype.constructor を使用してオブジェクトのコンストラクタ関数を参照します。

functionPerson(name){this.name=name;}constperson=newPerson('Alice');console.log(person.constructor);// [Function: Person]

このプログラムでは、Person コンストラクタ関数を使用して person オブジェクトを作成しています。person.constructor は、Person コンストラクタ関数を参照します。

組み込みオブジェクトのコンストラクタを参照するプログラム

[編集]

以下のプログラムは、Object.prototype.constructor を使用して組み込みオブジェクトのコンストラクタ関数を参照します。

constarr=[1,2,3];console.log(arr.constructor);// [Function: Array]constnum=42;console.log(num.constructor);// [Function: Number]conststr='Hello';console.log(str.constructor);// [Function: String]

このプログラムでは、配列、数値、文字列のコンストラクタ関数を参照しています。それぞれのオブジェクトの constructor プロパティは、対応する組み込みコンストラクタ関数を参照します。

注意点

[編集]
  • プロトタイプチェーン: constructor プロパティは、プロトタイプチェーンを通じて継承されます。オブジェクトが独自の constructor プロパティを持たない場合、そのプロトタイプの constructor プロパティが参照されます。
  • 変更可能: constructor プロパティは変更可能です。オブジェクトの constructor プロパティを変更すると、そのオブジェクトがどのコンストラクタ関数によって作成されたかを誤解する可能性があります。
  • プリミティブ値: プリミティブ値(数値、文字列、真偽値など)に対して constructor プロパティを参照すると、対応するラッパーオブジェクトのコンストラクタ関数が返されます。


組み込みオブジェクトのコンストラクタ

[編集]

脚註

[編集]
  1. ^これは、オブジェクトの生成元を特定するために使用されます。

外部リンク

[編集]


close