Thanks for the post. The last example is a little confusing to me: When setting obj = null, and afterwards testing with set.has(obj), I would expect the set to return false even if it still contains {} (the object), as the test is equal to set.has(null) and you never added null to the set. Or am I wrong?
In that last example, we added a reference to the object, inside the variable obj. By setting obj to null, we eliminate the last reference to the object we stored in our set. Therefore, because this is a WeakSet, the object is garbage-collected in order to free memory.
Hope it's clear :)
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Thanks for the post. The last example is a little confusing to me: When setting
obj = null
, and afterwards testing withset.has(obj)
, I would expect the set to return false even if it still contains{}
(the object), as the test is equal toset.has(null)
and you never addednull
to the set. Or am I wrong?In that last example, we added a reference to the object, inside the variable
obj
. By settingobj
to null, we eliminate the last reference to the object we stored in our set. Therefore, because this is a WeakSet, the object is garbage-collected in order to free memory.Hope it's clear :)