اشیا در جاوااسکریپت۵(ایجاد نمونههای اشیا)
نمونههای اولیه اشیا در جاوااسکریپت
هر شی جاوااسکریپت دارای یک نمونه اولیه میباشد که این نمونه اولیه خود نیز یک شی میباشد.
تمامی اشیا جاوااسکریپت تمامی خصوصیات و متدهای خود را از نمونه اولیه به ارث میبرند.
نمونههای اولیه در جاوااسکریپت
تمامی اشیا جاوااسکریپت تمامی خصوصیات و متدهای خود را از نمونه اولیه به ارث میبرند.
اشیا یا با استفاده از یک تعریف ضمنی ایجاد میشوند و یا با استفاده از کلمه کلیدی new و تابع Object() که تمامی اشیا از نوع اولیه Object.prototype به ارث میبرند ایجاد میشود.
تمامی اشیا جاوا اسکریپت اعم از (Date,Array,RegExpو …)تمامی خصوصیات Object.prototype را به ارث میبرند.
ایجاد اشیا در جاوااسکریپت
در جاوااسکریپت برای ایجاد اشیا دو راه داریم اول این که میتوان آنها را با استفاده از یک شی لیترال ایجاد کرد و یا باید اشیا را با استفاده از یک تابع تعریف کنیم و با استفاده از کلمه کلیدی new و با استفاده از ساختار زیر شی مورد نظر را ایجاد کنیم
newobject=new objactName(paramLists);
ایجاد نمونه اولیه از یک شی
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”, ۵۰, “blue”);
var myMother = new Person(“Sally”, “Rally”, ۴۸, “green”);
افزودن یک خاصیت و متد به شی در جاوا اسکریپت
افزودن یک خاصیت بعد از ایجاد شدن مانند مثال زیر میباشد
myFather.nationality = “English”;
دقت کنید که خاصیت مذکور نه به نمونه اولیه و نه دیگر نمونه ها و فقط به شی myfather اضافه میشود.
افزودن یک متد یا تابع به شی ایجاد شده مانند مثال زیر میباشد:
myFather.name = function () {
return this.firstName + ” ” + this.lastName;
};
در مورد متد ها نیز تابع اضافه شد فقط به شی myfather اضافه میشود.
افزودن خواص و متدها به نمونه های اولیه در جاوا اسکریپت
برخلاف افزودن خصوصیت و متدها به اشیا ایجاد شده،برای اضافه کردن خصوصیات و متدها به نمونه های اولیه باید آنها را به سازنده کلاس اضافه کنید
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
کلمه کلیدی prototype در جاوااسکریپت قابلیت افزودن توابع و خصوصیات را به نمونههای اولیه را امکانپذیر میسازد به مثال زیر توجه کنید:
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.nationality = “English”; //افزودن خاصیت
Person.prototype.name = function() {
return this.firstName + ” ” + this.lastName; //افزودن تابع
};
همیشه نمونههای اولیه خود را تعریف کنید و از تغییر و تعریف دوباره نمونه های اولیه جاوا اسکریپت جدا خودداری نمایید.