JavaScriptのプロトタイプ(prototypeオブジェクト)
すべてのJavaScriptはプロトタイプ(prototypeオブジェクト)から継承するプロパティとメソッドをオブジェクト。
前の章では、我々は、オブジェクトのコンストラクタ(コンストラクタ)を使用する方法を学びました:
例
関数人(最初、最後、年齢、eyecolor){ この .firstName最初=。この .lastName =最後。この .age =年齢; この .eyeColor = eyecolor。} VAR myFather = 新しい人物( "ジョン"、 "ドウ"、50、 "ブルー")。VAR myMother = 新しい人( "サリー"、 "ラリー"、48、 "グリーン");
また、既存のオブジェクトのコンストラクタに新しい属性を追加することができないことを知っています:
例
Person.nationality =「英語」。
コンストラクタ関数に追加する新しいプロパティの必要性を追加するには:
例
関数人(最初、最後、年齢、eyecolor){ この .firstName最初=。この .lastName =最後。この .age =年齢; この .eyeColor = eyecolor。この .nationality =「英語」。}
プロトタイプ継承
すべてのJavaScriptとは、試作品(プロトタイプオブジェクト)から継承するプロパティとメソッドをオブジェクト:
Date
オブジェクトDate.prototype
の継承。Array
オブジェクトArray.prototype
の継承。Person
オブジェクトPerson.prototype
の継承。
すべてのオブジェクトは、プロトタイプのトップストランドのJavaScriptのオブジェクトインスタンスに配置されています。
JavaScriptオブジェクトは、チェーンを指すプロトタイプオブジェクトを持っています。あなたは、オブジェクトのプロパティにアクセスしようとすると、一致するname属性を見つけたり、プロトタイプが到着するまで、その対象に検索のみでなく、オブジェクトのプロトタイプを検索し、上向きに検索の層に続いてオブジェクトのプロトタイプのプロトタイプにチェーンの終わり。
Date
オブジェクト、 Array
オブジェクト、および Person
からオブジェクトを Object.prototype
継承。
プロパティとメソッドを追加します
時には私たちは、すでに存在しているすべてのオブジェクトに新しいプロパティやメソッドを追加したいです。
また、時には我々はコンストラクタオブジェクトのプロパティやメソッドを追加します。
あなたは、新しい属性を追加するにはコンストラクタ関数オブジェクトにprototypeプロパティを使用することができます。
例
関数人(最初、最後、年齢、eyecolor){ この .firstName最初=。この .lastName =最後。この .age =年齢; この .eyeColor = eyecolor。} Person.prototype.nationality = "英語"。
もちろん、我々はまた、オブジェクトのコンストラクタに追加することができる新しい方法のprototypeプロパティを使用することができます。
例
関数人(最初、最後、年齢、eyecolor){ この .firstName最初=。この .lastName =最後。この .age =年齢; この .eyeColor = eyecolor。} Person.prototype.name = 関数(){ 戻り 、この .firstName + "" + この .lastNameと、}。