问题标签 [weakmap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 我可以认为 JavaScript 的 WeakMap 中的值是弱可达的吗?
如果我在 javascript 中有两个 WeakMap:
我在 WeakMaps 中放置了一个 Provider 及其功能...
在这一点上,我希望提供者和它的功能都是强可达的。我的假设是,一个强可达的键会使它自己和它的值都不能用于垃圾回收。providerFtn
和中的引用provider
应该是安全的。
但是,如果我与我的提供者一起做了一堆重要的工作,然后清除我唯一的强stronglyReachableProvider
参考......
假设没有对 WeakMaps 之外的对象的其他强引用。现在是否有myProvider
资格factory
进行垃圾收集?在这种情况下,如果 WeakMaps 中的值引用被认为是弱可达的,那就太好了,但我怀疑 WeakMap 值必然需要作为强引用来实现。
javascript - 是否可以在 JavaScript 中实现双向弱映射?
是否可以制作类似 WeakMap 的两种方式(通过其键获取值,或通过其值获取键)?
用法如下所示(在 TypeScript 语法中更好地说明):
在以后的任何时候,如果o
除了在内部之外不再被引用TwoWayWeakMap
,那么可以收集指向的SomeClass
对象。o
笔记!map.set(k, v)
必须允许 to的第二个参数是任何东西,而不仅仅是对象。v
例如,可以是一个number
。
javascript - Javascript - 将 2 个子对象映射到父对象以在彼此之间切换内容
我的问题是我有这样的默认布局:
我有这样的布局:
所以我删除的布局是:
现在,我在已删除字段旁边有一个加号按钮,可将其添加回正确位置的布局,另一侧有一个减号按钮。对我来说最简单的方法是在开始时创建唯一的 ID,但我不允许这样做。
可以在类别中切换字段,因此每次都必须将它们添加到类别的末尾。
我虽然关于弱地图,但我怎样才能使用对象引用来做到这一点?如何将布局对象和删除的对象引用到默认布局对象?
javascript - 如何让子类从 javascript 中的超类访问私有字段?
我正在尝试创建一个堆栈和队列类,但是如果不能使用继承,我就不能将数据字段设为私有。每次尝试时,我都会收到 Uncaught SyntaxError: Private field '#data' must be declared 在封闭类错误中。如何让子类继承私有字段?下面的代码: