1

GC はオブジェクト グラフの孤立した島を検出してメモリから削除する候補を見つけ、WeakMap は弱い参照で島の境界を壊さないWeakMap -> KeyObjectため、この参照WeakMap -> Value -> KeyObjectが弱いWeakMap -> Value参照で島の境界を壊さないことは理にかなっていますが、Value -> KeyObject参照は明らかに強いです。

例:

let o = {test:1};
let map = new WeakMap();
map.set(o, {strongRef: o});
o = null; // clear last reference on {test:1}
// will {test:1} be GCed after this ?
4

0 に答える 0