gpt4 book ai didi

javascript - 是否可以在 JavaScript 中创建 "weak reference"?

转载 作者:IT王子 更新时间:2023-10-29 02:45:43 24 4
gpt4 key购买 nike

在 JavaScript 中有没有什么方法可以创建对另一个对象的“弱引用”? Here is the wiki page describing what a weak reference is. Here is another article that describes them in Java.谁能想出一种在 JavaScript 中实现这种行为的方法?

最佳答案

更新:自 2020 年 7 月以来,一些实现(Chrome、Edge、Firefox 和 Node.js)已经支持 WeakRef s 在 WeakRefs proposal 中定义,这是截至 2020 年 12 月 16 日的“第三阶段草案”。

JavaScript 中没有对弱引用的语言支持。您可以使用手动引用计数自行滚动,但不是特别顺利。您不能创建代理包装器对象,因为在 JavaScript 中,对象永远不知道它们何时将被垃圾回收。

所以你的“弱引用”成为一个简单查找中的键(例如整数),使用添加引用和删除引用方法,当不再有手动跟踪的引用时,可以删除条目,留下 future 对该键的查找将返回 null。

这并不是真正的弱引用,但它可以解决一些相同的问题。它通常在复杂的 Web 应用程序中完成,以防止在 DOM 节点或事件处理程序与与之关联的对象(例如闭包)之间存在引用循环时浏览器(通常是 IE,尤其是旧版本)的内存泄漏。在这些情况下,甚至可能不需要完整的引用计数方案。

关于javascript - 是否可以在 JavaScript 中创建 "weak reference"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/266704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com