DEV Community

Discussion on: Weak References in JavaScript

Collapse
 
sirseanofloxley profile image
Sean Allin Newell

You can't dereference the object from the weakmap/weakset in any case, only from the other references.

Can you expand on that? So delete wouldn't work, but there's no remove to undo an add? Is the main usecase having references from DOM nodes, and then deleting those nodes which in turn frees memory? So is this less useful for vdom oriented apps?

Thread Thread
 
lionelrowe profile image
lionel-rowe

The DOM thing is one example use case. Another would be adding metadata to request/response objects in Node.js apps so that it can be read by middlewares later in the stack (without needing to modify any TypeScript interfaces).

Yes, there's a delete method for weak maps and weak sets. Like adding, it has zero effect on GC, which can't be manually controlled in JavaScript. Note that the delete operator used on an object also doesn't guarantee immediate GC.

Thread Thread
 
sirseanofloxley profile image
Sean Allin Newell

I meant to say "eligible for gc".