すべてのJavaScriptオブジェクトは、プロトタイプを持っています。 プロトタイプは、オブジェクトです。
すべてのJavaScriptオブジェクトは、プロトタイプから、それらのプロパティとメソッドを継承します。
JavaScriptのプロトタイプ
すべてのJavaScriptオブジェクトは、そのプロトタイプからプロパティとメソッドを継承します。
オブジェクトは、オブジェクトリテラルを使用して作成するか、とのnew Object()のObject.prototypeと呼ばれるプロトタイプを継承しています。
で作成されたオブジェクトnew Date() Date.prototypeを継承します。
Object.prototypeプロトタイプチェーンの上にあります。
すべてのJavaScriptオブジェクト(Date, Array, RegExp, Function, ....)から継承するObject.prototype 。
プロトタイプの作成
オブジェクトのプロトタイプを作成するための標準的な方法は、オブジェクトのコンストラクタ関数を使用することです。
例
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
コンストラクタ関数を使用すると、使用することができnew同じプロトタイプから新しいオブジェクトを作成するには、キーワードを:
例
var myFather = new Person("John", "Doe", 50, "blue");
var myMother = new Person("Sally", "Rally", 48, "green");
»それを自分で試してみてください コンストラクタ関数はプロトタイプであるPersonオブジェクト。
大文字の最初の文字でコンストラクタ関数に名前を付けるために良い方法であると考えられます。
オブジェクトにプロパティとメソッドを追加します
時には、既存のオブジェクトに新しいプロパティ(またはメソッド)を追加します。
時には、あなたは指定されたタイプのすべての既存のオブジェクトに新しいプロパティ(またはメソッド)を追加します。
時には、オブジェクトのプロトタイプに新しいプロパティ(またはメソッド)を追加します。
オブジェクトにプロパティを追加します
既存のオブジェクトに新しいプロパティを追加するのは簡単です:
プロパティが追加されmyFather 。 しないようにmyMother 。 ていない他の者オブジェクトへ。
オブジェクトへのメソッドの追加
既存のオブジェクトに新しいメソッドを追加するのも簡単です。
メソッドが追加されmyFather 。 しないようにmyMother 。
プロトタイプへのプロパティの追加
既存のオブジェクトに新しいプロパティを追加すると、プロトタイプは、既存のオブジェクトではありませんので、あなたは、プロトタイプに同じように新しいプロパティを追加することはできません。
コンストラクタに新しいプロパティを追加するには、コンストラクタ関数に追加する必要があります:
例
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English"
}
»それを自分で試してみてください プロトタイプのプロパティは、プロトタイプの値(デフォルト値)を持つことができます。
プロトタイプにメソッドを追加します
あなたのコンストラクタ関数はまた、メソッドを定義することができます。
例
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.name = function() {return this.firstName + " " + this.lastName;};
}
»それを自分で試してみてください 使用してprototypeプロパティを
JavaScriptのprototypeプロパティを使用すると、既存のプロトタイプに新しいプロパティを追加することができます:
例
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
»それを自分で試してみてください JavaScriptのprototypeプロパティはまた、既存のプロトタイプに新しいメソッドを追加することができます:
例
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.name = function() {
return this.firstName + " " + this.lastName;
};
»それを自分で試してみてください 唯一の独自のプロトタイプを変更します。 標準のJavaScriptオブジェクトのプロトタイプを変更しないでください。