例如,我有这段代码:
{a: 42}
执行此行之后,我认为对象以某种方式存储在内存中,我想知道如何以一种棘手的方式获取它?
答案 0 :(得分:4)
没有
你不能这样做。
任何体面的js解释器都会用垃圾收集器销毁它。
答案 1 :(得分:1)
否:一旦你丢失了对某个对象的所有引用,你就无法恢复它,GC也会收集它。
答案 2 :(得分:1)
否。
匿名对象打算以这种方式工作。如果以后需要检索对象,则只需命名即可。 (我假设你出于好奇而不是出于好意而问这个问题。)
一旦对象没有对它的引用,垃圾收集器应该销毁该对象,如this page确认的那样:
ECMAScript使用自动垃圾 采集。规范没有 定义细节,留下来 实施者要整理出来,还有一些 已知实现给出了一个 他们的垃圾优先级很低 收集业务。但一般 想法是,如果一个对象成为 不可接受的(没有剩余的 它的引用可以访问 执行代码)它变得可用 垃圾收集,将在 未来的一些观点将被摧毁 它消耗的资源被释放了 返回系统重新使用。
通常就是这种情况 退出执行上下文。该 范围链结构, 激活/变量对象和任何 在执行中创建的对象 上下文,包括函数对象, 将不再可访问等等 会变成垃圾 集合。