English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
プロトタイプこれはメカニズムであり、JavaScriptオブジェクトはこのメカニズムを通じて機能を相互に継承します。
前章では、以下の方法を学びましたコンストラクタ:
function User(fname, lname, age, loc) { this.firstName = fname; this.lastName = lname; this.age = age; this.location = loc; } var Seagull = new User("Seagull", "Anna", 22, "New Delhi"); var tarush = new User("Tarush", "Balodhi", 34, "Bihar");テストをしてみて‹/›
私たちは以下のことを学びましたできません新しい属性を既存のオブジェクトのコンストラクタに追加します:
User.weapon = "Sword";テストをしてみて‹/›
コンストラクタに新しい属性を追加するには、それをコンストラクタに追加する必要があります:
function User(fname, lname, age, loc) { this.firstName = fname; this.lastName = lname; this.age = age; this.location = loc; this.weapon = "Sword"; }テストをしてみて‹/›
時には、後で構築関数に新しい属性とメソッドを追加したい場合があります。これらの属性とメソッドはすべてのオブジェクト(例)間で共有されます。答えはオブジェクトですプロトタイプ。
prototype属性により、構築関数に属性とメソッドを追加することができます。
この例では、このprototype属性により、Userオブジェクト構築関数に新しい属性を追加することができます:
function User(fname, lname, age, loc) { this.firstName = fname; this.lastName = lname; this.age = age; this.location = loc; } User.prototype.weapon = "Sword";テストをしてみて‹/›
この例では、このprototype属性により、Userオブジェクト構築関数に新しいメソッドを追加することができます:
function User(fname, lname, age, loc) { this.firstName = fname; this.lastName = lname; this.age = age; this.location = loc; } User.prototype.fullName = function() { return this.firstName + " " + this.lastName; };テストをしてみて‹/›
注意:自分自身のプロトタイプのみを変更してください。標準(内蔵)JavaScriptオブジェクトのプロトタイプを変更しないでください。