WeakMap ve WeakSet nedir, Map ve Set'ten farkları nelerdir?
Cevap
WeakMap ve WeakSet anahtarlarını (WeakSet'te elemanlarını) zayıf referansla tutar: anahtar nesneye başka hiçbir referans kalmadığında çöp toplayıcı onu silebilir ve kayıt kendiliğinden kaybolur.
| Map / Set | WeakMap / WeakSet | |
|---|---|---|
| Anahtar tipi | Her şey | Yalnızca nesne (ve kayıtlı olmayan symbol) |
| Gezilebilir mi? | Evet (size, for...of) | Hayır |
| Bellek sızıntısı riski | Anahtar silinmezse var | Yok |
Kullanım alanları: DOM elemanlarına ek veri bağlamak, önbellek (memoization), nesnelere özel (private) veri eklemek.
const tiklamaSayisi = new WeakMap();
function say(el) {
tiklamaSayisi.set(el, (tiklamaSayisi.get(el) ?? 0) + 1);
}
// el DOM'dan kaldırılıp referansı kalmayınca kayıt da silinirİlgili JavaScript soruları
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.