Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tại sao cần WeakMap trong JavaScript?

WeakMap: key là object (weak reference), value bất kỳ. Key yếu → không cản trở GC thu hồi object key.

Use cases tránh memory leak

  • Dữ liệu private cho object: Chỉ ai có reference đến Map mới truy cập được data.
  • Metadata cho object thư viện: Gán data cho object bên ngoài mà không sửa đổi class gốc, tránh hidden class pollution.
  • Data cho tập object nhỏ trong nhiều instance: Tránh overhead hidden class khi nhiều object cùng kiểu.
  • Lưu data cho DOM node: Host object như DOM node — WeakMap tự dọn khi node bị remove.
  • Mở rộng khả năng object từ bên ngoài: Thêm behavior mà không sửa class.

Điểm mạnh: Key bị GC thu hồi → entry tự biến mất khỏi WeakMap — không leak memory.