From 0cc6602aca37b0764ee5c3d753f28c5fd27ca107 Mon Sep 17 00:00:00 2001 From: ruanyf Date: Wed, 29 Jan 2020 19:50:24 +0800 Subject: [PATCH] docs: fix #947 --- docs/set-map.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/set-map.md b/docs/set-map.md index f22a875..25eac94 100644 --- a/docs/set-map.md +++ b/docs/set-map.md @@ -1083,18 +1083,20 @@ undefined 前文说过,WeakMap 应用的典型场合就是 DOM 节点作为键名。下面是一个例子。 ```javascript -let myElement = document.getElementById('logo'); let myWeakmap = new WeakMap(); -myWeakmap.set(myElement, {timesClicked: 0}); +myWeakmap.set( + document.getElementById('logo'), + {timesClicked: 0}) +; -myElement.addEventListener('click', function() { - let logoData = myWeakmap.get(myElement); +document.getElementById('logo').addEventListener('click', function() { + let logoData = myWeakmap.get(document.getElementById('logo')); logoData.timesClicked++; }, false); ``` -上面代码中,`myElement`是一个 DOM 节点,每当发生`click`事件,就更新一下状态。我们将这个状态作为键值放在 WeakMap 里,对应的键名就是`myElement`。一旦这个 DOM 节点删除,该状态就会自动消失,不存在内存泄漏风险。 +上面代码中,`document.getElementById('logo')`是一个 DOM 节点,每当发生`click`事件,就更新一下状态。我们将这个状态作为键值放在 WeakMap 里,对应的键名就是这个节点对象。一旦这个 DOM 节点删除,该状态就会自动消失,不存在内存泄漏风险。 WeakMap 的另一个用处是部署私有属性。