Classes
🔹 1. تعریف یک کلاس ساده
👉 پشت صحنه: این همون کاریه که قبلاً با constructor function + prototype انجام میدادیم.
🔹 2. ویژگیهای کلاس
-
constructor → متدی که موقع new شدن صدا زده میشه.
-
methods → متدهایی که روی prototype ذخیره میشن.
-
fields (properties) → مقادیری که برای هر شیء جدید ساخته میشن.
🔹 3. وراثت (Inheritance)
کلاسها میتونن از هم ارثبری کنن با extends
:
👉 اگر متدی در کلاس فرزند وجود نداشته باشه، از کلاس پدر میاد (Prototype Chain).
🔹 4. استفاده از super
برای صدا زدن متد یا constructor پدر:
🔹 5. Getter و Setter در کلاسها
🔹 6. متدهای استاتیک
متدهایی که به خود کلاس تعلق دارن (نه به نمونهها):
🔹 7. فیلدهای خصوصی (#)
از ES2020 به بعد میتونیم پراپرتیهای private داشته باشیم:
📌 خلاصه
-
کلاسها در جاوااسکریپت در واقع syntax sugar روی prototype هستن.
-
امکانات: constructor, methods, inheritance, super, getters/setters, static methods, private fields.
-
برای OOP در JS استفاده میشه و کدنویسی رو خواناتر و ساختارمندتر میکنه.