Object Constructors
در جاوااسکریپت، برای ایجاد چندین شیء مشابه میتوانیم از تابع سازنده (Constructor Function) استفاده کنیم.
این روش باعث میشود به جای نوشتن چندین بار کد تکراری، یک قالب (Template) داشته باشیم و از روی آن اشیاء جدید بسازیم.
1️⃣ ایجاد شیء به صورت دستی
راه ساده برای ساخت شیء:
🔹 مشکل: وقتی بخواهیم دهها یا صدها شیء مشابه بسازیم، نوشتن کد تکراری سخت و غیر بهینه میشود.
2️⃣ تعریف Constructor Function
تابع سازنده مثل یک کلاس عمل میکند. برای تعریف آن:
-
با حرف بزرگ (CamelCase) شروع میشود.
-
از
this
برای مقداردهی propertyها استفاده میشود.
3️⃣ ایجاد شیء با new
برای ساخت نمونه جدید از تابع سازنده:
4️⃣ افزودن متد به Constructor
میتوانیم متد (تابع) هم تعریف کنیم:
5️⃣ استفاده از prototype
بهتر است متدها را خارج از Constructor و روی prototype
تعریف کنیم (بهینهتر است):
🔹 تفاوت: اگر متد داخل Constructor باشد، برای هر شیء جدید یک نسخه جدا ساخته میشود.
🔹 اگر روی prototype
باشد، همه اشیاء از یک متد مشترک استفاده میکنند → بهینهتر.
6️⃣ سازندههای داخلی جاوااسکریپت
جاوااسکریپت خودش سازندههای داخلی زیادی دارد مثل:
⚠️ اما در عمل، استفاده از لیترالها (""
, 123
, true
, []
, {}
) رایجتر و سریعتر است.
📑 جدول خلاصه
مفهوم | مثال | توضیح |
---|---|---|
ساخت شیء مستقیم | {name: "Ali", age: 30} | برای تعداد کم شیء مناسب |
تعریف Constructor | function Person(name, age) { this.name=... } | قالبی برای ساخت چندین شیء مشابه |
ایجاد شیء جدید | new Person("Ali", 30) | ساخت نمونه از Constructor |
افزودن متد داخل Constructor | this.sayHello = function(){...} | متد اختصاصی برای هر شیء |
افزودن متد با Prototype | Person.prototype.sayHello = function(){...} | متد مشترک بین همه اشیاء |
سازندههای داخلی | new Date() , new Array() | توسط خود جاوااسکریپت ارائه شدهاند |