Fix typos in 1.5.8 (WeakMap and WeakSet)

This commit is contained in:
Vse Mozhe Buty 2020-11-29 18:19:28 +02:00 committed by GitHub
parent e1a3f634a4
commit 5aebb8960a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -207,7 +207,7 @@ alert(cache.size); // 1 (Ouch! The object is still in cache, taking memory!)
For multiple calls of `process(obj)` with the same object, it only calculates the result the first time, and then just takes it from `cache`. The downside is that we need to clean `cache` when the object is not needed any more.
If we replace `Map` with `WeakMap`, then this problem disappears. The cached result will be removed from memory automatically after the object gets garbage collected .
If we replace `Map` with `WeakMap`, then this problem disappears. The cached result will be removed from memory automatically after the object gets garbage collected.
```js run
// 📁 cache.js
@ -284,7 +284,8 @@ The most notable limitation of `WeakMap` and `WeakSet` is the absence of iterati
`WeakSet` is `Set`-like collection that stores only objects and removes them once they become inaccessible by other means.
It's main advantages are that they have weak reference to objects, so they can easily be removed by garbage colector.
That comes at the cost of not having support for `clear`, `size`, `keys`, `values` ...
Their main advantages are that they have weak reference to objects, so they can easily be removed by garbage colector.
That comes at the cost of not having support for `clear`, `size`, `keys`, `values`...
`WeakMap` and `WeakSet` are used as "secondary" data structures in addition to the "primary" object storage. Once the object is removed from the primary storage, if it is only found as the key of `WeakMap` or in a `WeakSet`, it will be cleaned up automatically.