概要
javascriptにはプロトタイプという概念があります。
このプロトタイプについて、調べてみます。
プロトタイプは、全てのオブジェクトに関連つけられているオブジェクという考え方ができます。
ここで言う全てのオブジェクトというのは、javascriptが標準で利用できるオブジェクトで、それらのオブジェクトに対して、プロトタイプと関連づいていると言えます。
オブジェクトをnewする
オブジェクトをnewするタイミングで、プロトタイプオブジェクトを持っている状態になります。
newで生成されたオブジェクトは、Object.prototypeを継承しています。
新規に生成されるオブジェクトの種類によって、継承するプロトタイプも異なってきます。
例えば、
[js]
new Array()
[/js]
で生成するオブジェクトに対しては、Array.prototypeの値(コンストラクタも)を継承します。
プロトタイプチェーンについて
上記のnew Array()の場合、オブジェクトを生成したタイミングで、Array.prototypeとObject.prototypeの両方を継承します。
この両方を継承したオブジェクトの形をプロトタイプチェーンと呼び、両方のプロパティとメソッドが利用可能になる特徴があります。