如何实现ES6 WeakMap polyfill(与Java相比)

时间:2015-12-17 15:07:00

标签: javascript java ecmascript-6 babeljs weakmap

首先,我真正想要的问题是知道是否可以在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:

  • 始终立即收集条目
  • CAN 总是立即收集条目(如果现在不需要内存,可以稍后再收集)

这是Java中Weak和Soft之间的区别,并且不清楚ES6应该实现什么行为。

0 个答案:

没有答案