首先,我真正想要的问题是知道是否可以在Javascript中实现可靠的SoftMap。
Babel或Memoizee lib似乎为ES6 WeakMap / Set提供了polyfill。我试过阅读代码,但我并不确定它是如何理解的。
来自Java背景,我了解什么是WeakMap(我们已经WeakHashMap很长一段时间了,甚至Weak/Soft/Phantom references很长一段时间了。)
在Java中,要实现WeakHashMap,我们使用JVM提供的低级基元,如WeakReference。
我真的不明白如何在没有低级参考基元的情况下创建WeakMap
的填充。
有人可以向我解释一下,在较旧的浏览器中,我们想要填充,如果地图外的某些对象指向该密钥,如何跟踪地图密钥?< /强>
还有一些不清楚的地方。在Java中,我们有软和弱引用,而在Javascript中只有弱映射/集。在阅读有关WeakMap的some stuff之后,我仍然不清楚GC将如何决定收集地图条目。如果密钥无法访问,GC:
这是Java中Weak和Soft之间的区别,并且不清楚ES6应该实现什么行为。