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 راحتتر حافظه رو آزاد کنه.
-
HTML
Tailwind Css
Bootstrap 5
Java script
++C
Python
Three.js
Gsap
Sass
SQL
React