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() | توسط خود جاوااسکریپت ارائه شدهاند | 
 CSS3
          CSS3
        
                
           HTML
          HTML
        
                
           Tailwind Css
          Tailwind Css
        
                
           Bootstrap 5
          Bootstrap 5
        
                
           Java script
          Java script
        
                
           ++C
          ++C
        
                
           Python
          Python
        
                
           Three.js
          Three.js
        
                
           Gsap
          Gsap
        
                
           Sass
          Sass
        
                
           SQL
          SQL
        
                
           React
          React