WeakMap
🔹 WeakMap چیست؟
WeakMap
خیلی شبیه Map
هست، ولی چند تفاوت کلیدی داره:
-
کلیدها فقط میتونن Object باشن (نه string، نه number و نه primitive دیگه).
-
مراجع ضعیف (Weak References): اگه شیء به هیچ متغیر دیگهای وصل نباشه، توسط Garbage Collector حذف میشه حتی اگه توی WeakMap باشه.
-
قابل iteration (پیمایش) نیست → یعنی
forEach
,keys
,values
,entries
نداره.
🔹 ایجاد یک WeakMap
🔹 متدهای WeakMap
متد | توضیح |
---|---|
set(key, value) | اضافه کردن جفت کلید-مقدار (کلید باید object باشه). |
get(key) | گرفتن مقدار بر اساس کلید. |
has(key) | بررسی وجود کلید. |
delete(key) | حذف کلید. |
مثال:
🔹 Garbage Collection در WeakMap
چون WeakMap کلیدها رو ضعیف نگه میداره، اگه هیچ متغیری به اون object اشاره نکنه، خودکار پاک میشه.
🔹 کاربردهای واقعی WeakMap
-
ذخیره داده خصوصی برای اشیاء
میتونیم دادههایی نگه داریم که مستقیم روی شیء قرار نگیرن. -
مدیریت Cache (مثلاً نتایج محاسبات روی یک object)
🎯 تمرین در HTML
📌 جمعبندی
-
WeakMap
شبیهMap
هست ولی:-
کلیدها فقط object هستن.
-
قابل پیمایش (iteration) نیست.
-
برای مدیریت دادههای خصوصی یا cache خیلی مفید هست.
-
به خاطر Weak References باعث میشه Garbage Collector راحتتر حافظه رو آزاد کنه.
-