WeakMap and WeakSet hold weak references to objects, enabling garbage collection. Here's how to use them.
WeakMap vs Map#
WeakSet vs Set#
Private Data Pattern#
Caching with WeakMap#
DOM Element Metadata#
Object Visited Tracking#
WeakRef for Optional Caching#
Instance Counting#
React Integration#
API Response Caching#
Best Practices#
Use WeakMap when:
✓ Storing metadata for objects
✓ Implementing private data
✓ Caching computed values
✓ Associating data with DOM elements
Use WeakSet when:
✓ Tracking visited objects
✓ Marking objects as processed
✓ Checking object membership
✓ Preventing duplicate processing
Avoid when:
✗ Need to iterate over entries
✗ Need to know size
✗ Keys are primitives
✗ Need persistent storage
Conclusion#
WeakMap and WeakSet enable memory-efficient object associations. Use WeakMap for private data, caching, and metadata. Use WeakSet for tracking processed objects. Both automatically clean up when objects are garbage collected, preventing memory leaks.