nav*_*and 0 javascript ajax null garbage-collection
无论如何,如果我写的东西如下:
var h = 5;
delete h;
Run Code Online (Sandbox Code Playgroud)
......我将消除参考,但不是记忆.
现在,如果我将变量设置为null
,是否会用null对象替换内存?
var h = 5;
h = null;
Run Code Online (Sandbox Code Playgroud)
如果是这样,不仅更好的是不仅delete()
参考,而且还用null
对象替换内存,以获得更好的内存优化?
var h = 5;
h = null;
delete h;
Run Code Online (Sandbox Code Playgroud)
如果我想在一个冗长而复杂的脚本中创建一个桶加载的动态对象,那么摆脱或以其他方式诱导垃圾收集器消除对象的最佳方法是什么?因为除了仅仅消除引用之外,我还读到如果它被null占用,你可以提示收集器释放内存...
没有destroy
.您可能正在考虑delete
,但delete
不能用于删除变量,仅用于删除属性.(虽然目前使用浏览器可以让你获得不同的结果.)你可以删除全局变量window
,但不能删除本地变量.
无论如何,你不需要在JavaScript中考虑这种东西.将变量设置为null,如果没有更多变量指向同一个对象,它将在不久的将来的某个时刻被垃圾收集.指向null的变量记录占用的空间量很小,不值得担心.除非你正在进行故意关闭,否则当本地函数退出时,它将超出范围,成为GC的合法范围.
我曾经读过,如果它被null占用,你可以暗示收集器释放内存......
不.你只是删除引用,GC将获取现在的孤立对象并自行释放内存.你在这件事上没有任何发言权.