JavaScript – سازندههای شیء (Object Constructors)
ساخت آبجکت با تابع سازنده (Object Constructor Function)
برای ساخت چندین آبجکت مشابه، از تابع سازنده استفاده میشود. این توابع معمولاً با حرف بزرگ شروع میشوند (به عنوان یک استاندارد).
مثال ساخت یک نوع آبجکت (Person)
function Person(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eye;
}
توضیح:
- در تابع سازنده،
this
اشاره به آبجکت جدیدی دارد که با استفاده ازnew
ساخته میشود. - خصوصیات و مقادیر اولیه به این آبجکت تخصیص داده میشوند.
ایجاد آبجکتهای جدید
با استفاده از کلمه کلیدی new
میتوان آبجکتهای جدید از نوع مشخصشده ساخت.
مثال:
const myFather = new Person("John", "Doe", 50, "blue");
const myMother = new Person("Sally", "Rally", 48, "green");
const mySister = new Person("Anna", "Rally", 18, "green");
مقادیر پیشفرض برای خصوصیات
میتوانید مقدار پیشفرضی برای خصوصیات در سازنده تعریف کنید.
مثال:
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English"; // مقدار پیشفرض
}
افزودن یک خصوصیت به آبجکت
خصوصیت جدید را میتوان به یک آبجکت خاص اضافه کرد.
مثال:
myFather.nationality = "English";
نکته:
این خصوصیت فقط به آبجکت myFather
اضافه میشود و دیگر آبجکتهای ساختهشده از Person
این خصوصیت را نخواهند داشت.
افزودن خصوصیت به تابع سازنده
برای افزودن خصوصیت به تمام آبجکتهای یک نوع، باید از prototype
استفاده کنید.
مثال:
Person.prototype.nationality = "English";
متدهای سازنده (Constructor Methods)
توابع سازنده میتوانند شامل متدهایی نیز باشند.
مثال:
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.fullName = function() {
return this.firstName + " " + this.lastName;
};
}
افزودن متد به آبجکت
میتوانید متدی را به یک آبجکت خاص اضافه کنید.
مثال:
myMother.changeName = function (name) {
this.lastName = name;
};
نکته:
این متد فقط به آبجکت myMother
اضافه میشود.
افزودن متد به سازنده
برای افزودن متد به همه آبجکتهای یک نوع، باید از prototype
استفاده کنید.
مثال:
Person.prototype.changeName = function (name) {
this.lastName = name;
};
// استفاده از متد
myMother.changeName("Doe");
سازندههای داخلی جاوااسکریپت
جاوااسکریپت سازندههایی برای انواع آبجکتهای پیشفرض دارد:
سازنده | توضیح |
---|---|
new Object() |
ساخت آبجکت جدید |
new Array() |
ساخت آرایه جدید |
new Map() |
ساخت نقشه جدید |
new Set() |
ساخت مجموعه جدید |
new Date() |
ساخت تاریخ جدید |
new RegExp() |
ساخت الگوی جدید |
new Function() |
ساخت تابع جدید |
نکته:
- از نمادهای سادهتر بهجای سازندهها استفاده کنید:
{}
بهجایnew Object()
[]
بهجایnew Array()
/()/
بهجایnew RegExp()
function() {}
بهجایnew Function()
مثال:
// روش بهتر
const obj = {};
const arr = [];
const regex = /()/;
const func = function() {};
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام