WeakMap 這個特殊的集合類型實在 ES6 中加入的,其獨特之處就在于弱引用。弱引用的定義這邊就不說了,大家可以到 MDN 上去看。下面直接拋出問題代碼:var a = new WeakMap();var b = {id: 1};var c = "lalala"// 添加內容a.set(b,c);//解除外部強引用b = null;console.log(a);解除外部強引用后,WeakMap 中應該沒有內容才對,但是結果是, WeakMap 中的內容還在!這是為什么?求解
去除外部對 WeakMap key 的強引用,為什么 WeakMap 中的 key 還在?
楊__羊羊
2019-03-14 14:15:48