mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-24 18:32:22 +00:00
docs(map): edit weakMap
This commit is contained in:
parent
ff43701be0
commit
c1b6c6fc55
@ -900,13 +900,12 @@ myWeakmap.set(myElement, {timesClicked: 0});
|
|||||||
myElement.addEventListener('click', function() {
|
myElement.addEventListener('click', function() {
|
||||||
let logoData = myWeakmap.get(myElement);
|
let logoData = myWeakmap.get(myElement);
|
||||||
logoData.timesClicked++;
|
logoData.timesClicked++;
|
||||||
myWeakmap.set(myElement, logoData);
|
|
||||||
}, false);
|
}, false);
|
||||||
```
|
```
|
||||||
|
|
||||||
上面代码中,`myElement`是一个DOM节点,每当发生click事件,就更新一下状态。我们将这个状态作为键值放在WeakMap里,对应的键名就是`myElement`。一旦这个DOM节点删除,该状态就会自动消失,不存在内存泄漏风险。
|
上面代码中,`myElement`是一个 DOM 节点,每当发生`click`事件,就更新一下状态。我们将这个状态作为键值放在 WeakMap 里,对应的键名就是`myElement`。一旦这个 DOM 节点删除,该状态就会自动消失,不存在内存泄漏风险。
|
||||||
|
|
||||||
WeakMap的另一个用处是部署私有属性。
|
WeakMap 的另一个用处是部署私有属性。
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
let _counter = new WeakMap();
|
let _counter = new WeakMap();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user