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() {};

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - تاریخ‌ها (Dates)

JavaScript – تاریخ‌ها (Dates)

آبجکت‌های تاریخ (Date) در جاوااسکریپت آبجکت‌های تاریخ در جاوااسکریپت به ما امکان کار با تاریخ و زمان را می‌دهند....

بیشتر بخوانید
JavaScript - آرایه‌های ثابت (Array Const)

JavaScript – آرایه‌های ثابت (Array Const)

جاوااسکریپت: تعریف آرایه با const در سال 2015، جاوااسکریپت کلمه کلیدی مهمی به نام const را معرفی کرد. این...

بیشتر بخوانید
JavaScript - تکرار آرایه‌ها (Array Iteration)

JavaScript – تکرار آرایه‌ها (Array Iteration)

جاوا اسکریپت: تکرار بر روی آرایه‌ها جاوا اسکریپت روش‌های مختلفی برای تکرار (Iteration) بر روی آرایه‌ها ارائه می‌دهد که...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.