شکل اصلی شیء

از ویکی‌کد، دانشنامهٔ برنامه‌نویسی
پرش به ناوبری پرش به جستجو

تمامی اشیاء در جاوا اسکریپت ویژگی‌ها و متدها را از یک مدل یا شکل اصلی به ارث می‌برند.[۱]

در فصل قبلی ما یادگرفتیم که چگونه از یک سازنده شیء استفاده کنیم:

مثال

1function Person(first, last, age, eyecolor) {
2  this.firstName = first;
3  this.lastName = last;
4  this.age = age;
5  this.eyeColor = eyecolor;
6}
7
8var myFather = new Person("John", "Doe", 50, "blue");
9var myMother = new Person("Sally", "Rally", 48, "green");


مشاهدهٔ نتیجه


ما همچنین یادگرفتیم که شما نباید یک ویژگی جدید به متد سازنده‌ی یک شیء که از قبل وجود دارد اضافه کنید:

مثال

Person.nationality = "English";


مشاهدهٔ نتیجه


برای اضافه کردن یک شیء جدید به یک سازنده، شما ابتدا می‌بایست تابع سازنده را اضافه کنید:

مثال

1function Person(first, last, age, eyecolor) {
2  this.firstName = first;
3  this.lastName = last;
4  this.age = age;
5  this.eyeColor = eyecolor;
6  this.nationality = "English";
7}


مشاهدهٔ نتیجه


ارث بری مدل یا شکل اصلی

تمامی اشیاء در جاوا اسکریپت ویژگی‌ها و متدها را از یک مدل یا شکل اصلی به ارث می‌برند:

  • شیء date از Date.prototype ارث‌بری می‌کند.
  • شیء Array از Array.prototype ارث‌بری می‌کند.
  • شیء Person از Person.prototype ارث‌بری می‌کند.

Object.prototype در بالاترین نقطه زنجیر ارث‌بری شکل یا مدل اصلی قرار دارد:

شیء Date، شیء Array، و شیء Person از Object.prototyoe ارث‌بری می‌کنند.

اضافه کردن ویژگی ها و متدها به اشیاء

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

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

استفاده از ویژگی prototype

ویژگی prototype به شما این اجازه را می‌دهد که به سازنده شیء ویژگی‌های جدیدی را اضافه کنید:

مثال

1function Person(first, last, age, eyecolor) {
2  this.firstName = first;
3  this.lastName = last;
4  this.age = age;
5  this.eyeColor = eyecolor;
6}
7
8Person.prototype.nationality = "English";


مشاهدهٔ نتیجه


ویژگی prototype همچنین به شما این اجازه را می‌دهد که متدهای جدیدی را در سازنده اشیاء اضافه کنید:

مثال

 1function Person(first, last, age, eyecolor) {
 2  this.firstName = first;
 3  this.lastName = last;
 4  this.age = age;
 5  this.eyeColor = eyecolor;
 6}
 7
 8Person.prototype.name = function() {
 9  return this.firstName + " " + this.lastName;
10};


مشاهدهٔ نتیجه

فقط prototypeهای مربوط به خود را ویرایش کنید. هیچ وقت prototyoeهای اشیاء استاندارد در جاوا اسکریپت را ویرایش نکنید.


منابع آموزشی