پروتوتایپ‌های اشیاء JavaScript

همه‌ی اشیاء 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.prototype ارث می‌برد. شیء آرایه از Array.prototype ارث می‌برد. شیء Person از Person.prototype ارث می‌برد.

Object.prototype در بالای زنجیره‌ی ارث原型 قرار دارد:

شیء تاریخ، شیء آرایه و شیء Person از Object.prototype ارث می‌برند.

افزودن ویژگی‌ها و روش‌ها به اشیاء

گاهی می‌خواهید به همه‌ی اشیاء موجود با نوع داده‌ای خاص، ویژگی‌های جدید (یا روش‌ها) اضافه کنید.

گاهی اوقات، ممکن است بخواهید ویژگی‌های جدیدی (یا روش‌ها) به سازنده‌های شیء اضافه کنید.

استفاده 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";

آزمایش کنید

نمایندگی prototype 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 را تغییر ندهید.