JavaScriptのオブジェクトプロトタイプ
- 前のページ JS オブジェクト コンストラクタ
- 次のページ JS オブジェクト リファレンス
すべてのJavaScriptオブジェクトはプロトタイプから属性とメソッドを継承しています。
前章では、以下の使用方法を学びました:オブジェクトのコンストラクタ:
インスタンス
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; } var myFather = new Person("Bill", "Gates", 62, "blue"); var myMother = new Person("Steve", "Jobs", 56, "green");
私たちはあなたができません既存のオブジェクトのコンストラクタに新しい属性を追加:
インスタンス
Person.nationality = "English";
コンストラクタに新しい属性を追加するには、それをコンストラクタ関数に追加する必要があります:
インスタンス
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; this.nationality = "English"; }
プロトタイプ継承
すべてのJavaScriptオブジェクトはプロトタイプから属性とメソッドを継承しています。
DateオブジェクトはDate.prototypeを継承しています。ArrayオブジェクトはArray.prototypeを継承しています。PersonオブジェクトはPerson.prototypeを継承しています。
Object.prototypeはプロトタイプ継承の先頭に位置しています:
Dateオブジェクト、Arrayオブジェクト、PersonオブジェクトはObject.prototypeを継承しています。
オブジェクトに属性とメソッドを追加
時々、すべての指定されたタイプの既存オブジェクトに新しい属性(またはメソッド)を追加したいと考えます。
時には、オブジェクトコンストラクタに新しい属性(またはメソッド)を追加したいことがあります。
使用 prototype
属性
JavaScript プロトタイプ属性も、オブジェクトコンストラクタに新しい属性を追加することができます:
インスタンス
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; } Person.prototype.nationality = "English";
JavaScript プロトタイプ属性も、オブジェクトコンストラクタに新しいメソッドを追加することができます:
インスタンス
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 オブジェクトのプロトタイプを変更することは絶対にしないでください。
- 前のページ JS オブジェクト コンストラクタ
- 次のページ JS オブジェクト リファレンス