我的无引用 JavaScript 对象存在在哪里以及存在多长时间
Where and for how long does my referenceless javascript object exist?
var SomeObj = function() {
this.i = 0;
};
setTimeout(function() {
new SomeObj; // I mean this object
}, 0);
SomeObj 对象在什么时候被垃圾回收?
一旦不再使用,它就有资格进行垃圾回收。这意味着在您的案例中紧跟在构造函数调用之后。
这实际发生的及时程度是一个实现细节。如果你遇到GC问题,你需要深入研究你的特定Javascript引擎。
未从任何地方引用的对象在程序视图中根本不"存在"。它仍然在内存中的某个地方驻留多长时间取决于解释器的垃圾回收特征,以及何时/是否需要收集它。
在您的特定情况下,对象在创建后立即符合垃圾回收条件,并且不使用表达式生成的引用(例如在赋值中(。事实上,对象可能一开始就根本不会被创建,优化编译器可以很容易地完全删除整个函数 - 它没有副作用,也没有返回值。
相关文章:
- 存在每个时间元素的javascript事件
- 为什么我的上下文选择器和.buttonset()在ie中花费了这么长时间
- 谷歌地图需要很长时间才能在ie11中渲染
- 有没有一种方法可以检查javascript以毫秒为单位执行一个函数需要多长时间
- 我一直收到的控制台警告是什么?推迟长时间运行的计时器任务以提高滚动的流畅性
- 为什么这个代码不起作用?我花了很长时间试图弄清楚这一点
- 如何在长时间执行JavaScript期间显示微调器
- 长时间轮询:每个浏览器中的通知
- 完整日历:如何支持一次点击和不长时间点击
- 如何使用 javascript 停止对 asp.net 进行正在进行的回发(长时间运行的执行)
- 为什么这个 AJAX 调用需要这么长时间
- 为什么这个正则表达式需要这么长时间才能执行
- 如何修复长时间运行的脚本
- Node.js中的垃圾收集作用域-变量将保持设置状态多长时间
- javascript秒表限制最长时间
- 长时间运行的脚本IE与Chrome/Firefox
- 有没有一种方法可以在长时间运行的JavaScript操作之前强制回流
- 我的无引用 JavaScript 对象存在在哪里以及存在多长时间
- 为什么chromecast在动画帧之间需要这么长时间
- 输入焦点关闭键盘,需要长时间触摸