- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法在 Javascript 中创建任何其他弱引用的 WeakMap 以存储键值对,其中 键是字符串/数字,值是对象。
引用必须像这样工作:
const wMap = new WeakRefMap();
const referencer = {child: new WeakRefMap()}
wMap.set('child', temp.child);
wMap.has('child'); // true
delete referencer.child
wMap.has('child'); //false
我创建了一种树结构,用于跟踪仍在当前范围内使用的引用。
我会进行大量合并,递归清理深层嵌套结构对于此用例来说效率非常低。
最佳答案
您可以使用 WeakRef 解决它和 FinalizationRegistry .
这是一个用 TypeScript 编写的示例:
class InvertedWeakMap<K extends string | symbol, V extends object> {
_map = new Map<K, WeakRef<V>>()
_registry: FinalizationRegistry<K>
constructor() {
this._registry = new FinalizationRegistry<K>((key) => {
this._map.delete(key)
})
}
set(key: K, value: V) {
this._map.set(key, new WeakRef(value))
this._registry.register(value, key)
}
get(key: K): V | undefined {
const ref = this._map.get(key)
if (ref) {
return ref.deref()
}
}
has(key: K): boolean {
return this._map.has(key) && this.get(key) !== undefined
}
}
async function main() {
const map = new InvertedWeakMap()
let data = { hello: "world!" } as any
map.set("string!", data)
console.log('---before---')
console.log(map.get("string!"))
console.log(map.has("string!"))
data = null
await new Promise((resolve) => setTimeout(resolve, 0))
global.gc() // call gc manually
console.log('---after---')
console.log(map.get("string!"))
console.log(map.has("string!"))
}
main()
它必须与 --expose-gc 一起运行node.js 环境中的选项。
关于javascript - WeakMap倒置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45199043/
这个问题在这里已经有了答案: Invert rounded corner in CSS? (11 个答案) 关闭 8 年前。 当我想到为我的链接制作标签(或标签)时,我正在处理我网站的 CSS。我在
我是 Flutter 的新手,我正在尝试编写一个库来允许用户平移/缩放他们的个人资料图片。 为了使其视觉化,我想用“倒置”的 ClipOval 堆叠他们的图片,以显示边界。 到目前为止,这是我得到的结
我正在为我的一个应用程序使用具有垂直滚动方向的 Collection View 。在这里,我想让我的 Collection View 在不使用任何 CGAffine 变换的情况下倒置显示。是否可以在
我正在构建一个应用程序,我需要在其中从自定义相机拍摄照片并且 View 是倒置或旋转的(当我上下移动它时,图片会横向移动)。 知道为什么会这样以及如何解决这个问题吗? 这是相机的代码: class P
我在 Bootstrap 中使用轮播,我的一些图片是颠倒的。我在我的图片配置中搜索,之前我尝试将它们颠倒过来但没有结果。你知道这个类或javascript函数吗?非常感谢。 标记 最佳答案 如我的
我是 Canvas 的新手,想知道: 使用倒笛卡尔坐标系的基本原理。 比如说,我需要在直方图中绘制一些值。是一种将 Canvas 框架旋转/映射到笛卡尔坐标系的简单方法。? 最佳答案 Canvas 是
在jsp中实现如图所示的金字塔, 代码如下: 大致思路如下: 1、先画出前5行。因为 i+空格数=总行数,所以第一行的空格数是 总行数-i(第几行),然后画出 *,*的数目=2*i-11;
使用 xcode 6.3.2 中的自动布局功能,我能够为 iPad 和 iPhone 调整我的 View 、按钮和文本字段。但是对于颠倒我的观点并没有改变,任何想法我们如何使用自动布局支持颠倒模式而不
继http://stackoverflow.com/questions/18766430/how-can-i-do-d3-svg-arc-within-a-given-map-projection之后
我在 Xcode 中使用 C++ 进行编程,我试图打印出一个数组,但所有打印出来的都是“\377”和一个颠倒的“?”在它的末尾。这是什么意思? 最佳答案 您可能以 UTF-16 生成了您在 Windo
我正在尝试用白色而不是黑色绘制标准 NSImage。下面的代码在当前 NSGraphicsContext 中以黑色绘制图像时效果很好: NSImage* image = [NSImage imageN
我正在学习p5 js并尝试制作一个简单的2d蛇游戏,但是当我按键盘上的向上箭头时,矩形(蛇仍然不存在)向下移动,当我按向下箭头时,它移动向上 function keyPressed() { if (k
我正在做的是通过 CIDetector 检测面部,我的图像来自 UIImagePickerController(从后置摄像头捕获图像)。我可以检测到人脸..但我的问题是我的人脸图像倒置(从上到下)。这
在 iOS8 设备或 iOS8 模拟器上: 我有一个成为第一响应者的 UITextView。一切正常,直到应用退出事件状态(通过按下主页键)。 应用程序再次激活后,键盘的外观发生了变化 - 参见图片
我是一名优秀的程序员,十分优秀!