توابع سازنده در JavaScript
یک تابع سازنده (constructor function) در واقع الگویی برای اشیاء است. از آن برای ایجاد اشیاء متعدد با ساختاری یکسان استفاده کنید.
نحوه عملکرد:
شما از کلمه کلیدی new برای فراخوانی یک تابع سازنده استفاده میکنید. این فرآیند چهار کار انجام میدهد:
- یک شیء خالی ایجاد میکند.
- مقدار
thisرا به آن شیء جدید متصل میکند. - کدهای داخل تابع را اجرا میکند.
- شیء جدید را برمیگرداند.
کد نمونه:
function Employee(name, salary) {
this.name = name;
this.salary = salary;
}
const emp1 = new Employee("Saravanan", 50000);
قوانین باید رعایت شوند:
- نام توابع را با حرف بزرگ شروع کنید.
- از
thisبرای اختصاص دادن ویژگیها (properties) به شیء جدید استفاده کنید.
نقش this:
در داخل یک سازنده، this به شیء خاصی که در حال ساخت آن هستید اشاره دارد. برای مثال، this.name = name مقدار پارامتر را به ویژگیِ شیء اختصاص میدهد.
افزودن متدها:
میتوانید توابعی را داخل یک سازنده اضافه کنید تا هر شیء بتواند از آنها استفاده کند.
function Employee(name, salary) {
this.name = name;
this.salary = salary;
this.displayInfo = function() {
console.log(this.name + " earns " + this.salary);
};
}
بهرهوری حافظه:
اگر متدها را مستقیماً به سازنده اضافه کنید، هر شیء یک کپی مخصوص به خود دریافت میکند. این کار حافظه بیشتری مصرف میکند.
در عوض، از prototype استفاده کنید. افزودن یک متد به prototype باعث میشود یک کپی واحد بین تمام اشیاء به اشتراک گذاشته شود.
Employee.prototype.greet = function() {
console.log("Hello " + this.name);
};
خلاصه:
- برای یک شیء واحد، از object literals استفاده کنید.
- برای چندین شیء با ساختار مشابه، از توابع سازنده استفاده کنید.
Source: https://www.w3schools.com/js/js_object_constructors.asp Source: https://www.geeksforgeeks.org/javascript/javascript-function-constructor/ Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function
Post link: https://dev.to/dev_saravanan_journey/javascript-constructor-functions-k6k