File tree 1 file changed +3
-3
lines changed
1-js/05-data-types/08-weakmap-weakset
1 file changed +3
-3
lines changed Original file line number Diff line number Diff line change @@ -74,7 +74,7 @@ weakMap.set("test", "Whoops"); // Error,因为 "test" 不是一个对象
74
74
*/ ! *
75
75
```
76
76
77
- 现在,如果我们在 weakMap 中使用一个对象作为键,并且没有其他对这个对象的引用 — 该对象将会被从内存(和map)中自动清除。
77
+ 现在,如果我们在 weakMap 中使用一个对象作为键,并且没有其他对这个对象的引用 —— 该对象将会被从内存(和map)中自动清除。
78
78
79
79
``` js
80
80
let john = { name: " John" };
@@ -87,7 +87,7 @@ john = null; // 覆盖引用
87
87
// john 被从内存中删除了!
88
88
```
89
89
90
- 与上面常规的 ` Map ` 的例子相比,现在如果 ` john ` 仅仅是作为 ` WeakMap ` 的键而存在 — 它将会被从 map(和内存)中自动删除。
90
+ 与上面常规的 ` Map ` 的例子相比,现在如果 ` john ` 仅仅是作为 ` WeakMap ` 的键而存在 —— 它将会被从 map(和内存)中自动删除。
91
91
92
92
` WeakMap ` 不支持迭代以及 ` keys() ` ,` values() ` 和 ` entries() ` 方法。所以没有办法获取 ` WeakMap ` 的所有键或值。
93
93
@@ -108,7 +108,7 @@ john = null; // 覆盖引用
108
108
109
109
` WeakMap ` 的主要应用场景是 ** 额外数据的存储** 。
110
110
111
- 假如我们正在处理一个“属于”另一个代码的一个对象,也可能是第三方库,并想存储一些与之相关的数据,那么这些数据就应该与这个对象共存亡 — 这时候 ` WeakMap ` 正是我们所需要的利器。
111
+ 假如我们正在处理一个“属于”另一个代码的一个对象,也可能是第三方库,并想存储一些与之相关的数据,那么这些数据就应该与这个对象共存亡 —— 这时候 ` WeakMap ` 正是我们所需要的利器。
112
112
113
113
我们将这些数据放到 ` WeakMap ` 中,并使用该对象作为这些数据的键,那么当该对象被垃圾回收机制回收后,这些数据也会被自动清除。
114
114
You can’t perform that action at this time.
0 commit comments