JavaScript/Function/prototype/constructor

カテゴリ:Book:JavaScript#Function/prototype/constructor%20

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

構文

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

関数のコンストラクタを参照するプログラム

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

function greet() {
  console.log('Hello!');
}

console.log(greet.constructor); // [Function: Function]

このプログラムでは、greet 関数のコンストラクタ関数を参照しています。greet.constructor は、Function コンストラクタ関数を参照します。

組み込み関数のコンストラクタを参照するプログラム

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

console.log(Array.constructor); // [Function: Function]
console.log(Date.constructor);  // [Function: Function]
console.log(String.constructor); // [Function: Function]

このプログラムでは、組み込み関数のコンストラクタ関数を参照しています。すべての組み込み関数のコンストラクタは Function コンストラクタ関数です。

注意点

  • プロトタイプチェーン: constructor プロパティは、プロトタイプチェーンを通じて継承されます。関数オブジェクトが独自の constructor プロパティを持たない場合、そのプロトタイプの constructor プロパティが参照されます。
  • 変更可能: constructor プロパティは変更可能です。関数オブジェクトの constructor プロパティを変更すると、その関数がどのコンストラクタ関数によって作成されたかを誤解する可能性があります。
  • 関数オブジェクト: Function.prototype.constructor は、関数オブジェクトに対してのみ有効です。他の種類のオブジェクト(例えば配列や日付オブジェクト)に対しては、それぞれのコンストラクタ関数が参照されます。

脚註

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

外部リンク

カテゴリ:Book:JavaScript#Function/prototype/constructor%20 カテゴリ:JavaScript
カテゴリ:Book:JavaScript カテゴリ:JavaScript カテゴリ:Pages using the JsonConfig extension