در حال بارگذاری...

کلاس‌های ES6

کلاس‌های ES6 (ES6 Classes) یکی از مهم‌ترین ویژگی‌های جاوااسکریپت مدرن هستند که برنامه‌نویسی شیءگرا (Object-Oriented Programming) را ساده‌تر و ساختاریافته‌تر می‌کنند. پیش از ES6، توسعه‌دهندگان برای ایجاد اشیاء از توابع سازنده (Constructor Functions) و زنجیره‌های پروتوتایپ (Prototype Chains) استفاده می‌کردند که برای مبتدیان گیج‌کننده بود. کلاس‌ها با ارائه سینتکس واضح، قابلیت بازاستفاده و سازماندهی بهتر کد را فراهم می‌کنند.
در پروژه‌های واقعی، کلاس‌ها کاربرد فراوان دارند. در یک فروشگاه آنلاین (Online Shop)، می‌توان کلاس Product ایجاد کرد تا اطلاعات محصول مانند نام، قیمت و توضیحات را مدیریت کند. در وب‌سایت خبری (News Website)، کلاس NewsItem می‌تواند برای مدیریت تیتر، محتوا و تاریخ انتشار به کار رود. در وبلاگ شخصی (Personal Blog)، کلاس Article برای مقالات و نویسنده‌ها مناسب است و در پرتال دولتی (Government Portal) می‌توان کلاس‌های User یا Form را برای مدیریت کاربران و فرم‌ها تعریف کرد.
می‌توان کلاس‌های ES6 را مانند ساختن یک خانه تصور کرد: کلاس‌ها نقشه و طراحی خانه هستند و هر شیء (Object) یک اتاق است که می‌توان آن را مطابق نیاز شخصی تزئین و سازماندهی کرد. در این آموزش، شما یاد خواهید گرفت چگونه کلاس‌ها را تعریف کنید، سازنده‌ها (Constructors) و متدها (Methods) را استفاده کنید، وراثت (Inheritance) را پیاده‌سازی کنید و آن‌ها را در پروژه‌های واقعی به کار ببرید.

مثال پایه

javascript
JAVASCRIPT Code
// تعریف یک کلاس ساده در ES6
class User {
constructor(name, email) { // سازنده (Constructor) ویژگی‌های نمونه را مقداردهی می‌کند
this.name = name;
this.email = email;
}
greet() { // متد (Method) مشترک برای همه نمونه‌ها
return `سلام، ${this.name}!`;
}
}

const user1 = new User("مهدی", "[[email protected]](mailto:[email protected])");
console.log(user1.greet()); // "سلام، مهدی!"

در این مثال، ما یک کلاس به نام User تعریف کرده‌ایم. کلمه کلیدی class ساختار شیءگرای مدرن را معرفی می‌کند. متد constructor به طور خودکار هنگام ایجاد یک نمونه (Instance) با new فراخوانی می‌شود و ویژگی‌های نمونه را مقداردهی می‌کند. this به نمونه جاری اشاره دارد.
متد greet() تابعی است که برای تمام نمونه‌ها مشترک است و در پروتوتایپ (Prototype) قرار می‌گیرد تا حافظه بهینه استفاده شود. با استفاده از new User("مهدی", "[email protected]") یک نمونه جدید ایجاد می‌کنیم و فراخوانی user1.greet() پیغام شخصی‌سازی شده را بازمی‌گرداند.
این کلاس می‌تواند در وبلاگ یا پرتال دولتی برای مدیریت کاربران استفاده شود. تفاوت بین کلاس و شیء باید به خوبی درک شود: کلاس نقشه است و شیء اتاق واقعی که مطابق نیاز تزئین شده است.

مثال کاربردی

javascript
JAVASCRIPT Code
// کلاس برای مدیریت محصولات در فروشگاه آنلاین
class Product {
constructor(name, price) {
this.name = name;
this.price = price;
}
display() { // نمایش جزئیات محصول
return `${this.name} قیمت: ${this.price} تومان`;
}
}

const product1 = new Product("لپ‌تاپ", 45000000);
const product2 = new Product("هدفون", 2000000);

console.log(product1.display()); // "لپ‌تاپ قیمت: 45000000 تومان"
console.log(product2.display()); // "هدفون قیمت: 2000000 تومان"

برای استفاده بهینه از کلاس‌های ES6، بهتر است چند Best Practice را رعایت کنیم:

  1. از سینتکس مدرن (class, extends, super) استفاده کنید تا کد خواناتر و قابل نگهداری باشد.
  2. ورودی‌ها را در سازنده اعتبارسنجی کنید، مانند اطمینان از مثبت بودن قیمت محصولات.
  3. متدها را در داخل کلاس تعریف کنید و نه در سازنده، تا حافظه بهینه استفاده شود.
  4. از وراثت (Inheritance) برای ساختاردهی مجدد کد استفاده کنید، مانند کلاس پایه Post برای وبلاگ و توسعه آن به VideoPost یا ImagePost.
    اشتباهات رایج شامل فراموش کردن new، تعریف متدها در سازنده، استفاده نادرست از this در callbackها و ترکیب منطق تجاری با UI است. برای دیباگ کردن، از console.log(this) و instanceof استفاده کنید و کلاس‌ها را به صورت ماژولار تقسیم کنید تا کد مرتب و قابل نگهداری باشد.

📊 مرجع سریع

Property/Method Description Example
constructor مقداردهی اولیه به نمونه کلاس class A { constructor(x){ this.x = x; } }
this اشاره به نمونه جاری this.name = "مهدی";
method() تعریف تابع روی پروتوتایپ greet(){ return "سلام"; }
extends وراثت کلاس‌ها class B extends A {}
super فراخوانی سازنده یا متد والد super(name);
static متد سطح کلاس static info(){ return "اطلاعات"; }

خلاصه و گام‌های بعدی:
در این آموزش، با مفاهیم کلاس‌های ES6 شامل سازنده‌ها، متدها، ایجاد نمونه‌ها و وراثت آشنا شدید. کلاس‌ها کمک می‌کنند کد منظم، بازاستفاده‌پذیر و قابل نگهداری باشد، مانند نقشه‌ای که یک خانه را سازماندهی می‌کند.
در پروژه‌هایی مانند فروشگاه آنلاین، وبلاگ، سایت خبری یا پرتال دولتی، کلاس‌ها می‌توانند کاربران، محصولات، مقالات یا آیتم‌های خبری را مدل کنند. این مفاهیم به طور مستقیم با HTML DOM Manipulation و ارتباط با Backend قابل استفاده هستند.
گام‌های بعدی شامل متدهای استاتیک، وراثت پیشرفته و Design Patterns مانند Singleton و Factory است. برای تمرین، یک وبلاگ کوچک یا ماژول فروشگاهی با کلاس‌های محصولات، کاربران و سفارشات ایجاد کنید. کد ماژولار و تمیز باعث مقیاس‌پذیری و نگهداری آسان می‌شود.

🧠 دانش خود را بیازمایید

آماده شروع

آزمون دانش شما

درک خود از این موضوع را با سوالات کاربردی بسنجید.

3
سوالات
🎯
70%
برای قبولی
♾️
زمان
🔄
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود