Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 地图上的垃圾收集和es6中的WeakMap收集_Javascript_Dictionary_Garbage Collection_Ecmascript 6_Weakmap - Fatal编程技术网

Javascript 地图上的垃圾收集和es6中的WeakMap收集

Javascript 地图上的垃圾收集和es6中的WeakMap收集,javascript,dictionary,garbage-collection,ecmascript-6,weakmap,Javascript,Dictionary,Garbage Collection,Ecmascript 6,Weakmap,我在看WeakMap的描述,上面写着: 在本机weakmap中,对关键对象的引用被“弱”保存,这意味着如果没有对该对象的其他引用,它们不会阻止垃圾收集 通过阅读本文,我的理解是,在您试图利用JavaScript的垃圾收集的情况下,会使用weakmap。我根本不明白的是我加粗的那句话 为什么在普通映射中,没有引用的对象不会被垃圾收集?这样做的好处是什么?我必须明确地从法线贴图中删除吗?在法线贴图中,贴图是对对象的引用。“为什么在法线贴图中,没有引用的对象不会被垃圾收集?”因为贴图本身有对对象的引用

我在看WeakMap的描述,上面写着:

在本机weakmap中,对关键对象的引用被“弱”保存,这意味着如果没有对该对象的其他引用,它们不会阻止垃圾收集

通过阅读本文,我的理解是,在您试图利用JavaScript的垃圾收集的情况下,会使用weakmap。我根本不明白的是我加粗的那句话


为什么在普通映射中,没有引用的对象不会被垃圾收集?这样做的好处是什么?我必须明确地从法线贴图中删除吗?

在法线
贴图中,
贴图是对对象的引用。

“为什么在法线贴图中,没有引用的对象不会被垃圾收集?”因为贴图本身有对对象的引用。只要有引用,对象就不是gced。-Felix Kling

这意味着,除非键有其他独立的引用,否则gc可以回收它们的记忆。@HunanRostomyan我从表面上理解这个概念,但我觉得如果没有一个例子,我就无法真正理解gc是如何工作的。对,这有点太抽象了。我试着在下面举一个小例子。也许这会更有用。“为什么在普通映射中,没有引用的对象不会被垃圾收集?”因为映射本身有对对象的引用。只要存在引用,对象就不会被gced。