标记清除法 中使用
var obj = new Object();
obj = null;//解除引用
书上说通过上述代码可以释放对象占用内存空间。
为什么??? 这不是引用计数法的内容?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
解除一个值的引用并不意味着自动回收该值所占用的内存。解除引用的真正作用是让值脱离执行环境,等待垃圾收集器下次运行时将其回收。因为js的垃圾回收是周期性的。让它为null之后,下一次垃圾回收机制触发时就会讲这个变量清除
因为这样就告诉垃圾回收器,这个对象我不要了,你下次可以帮我丢了。。。但是如果同一个对象还被其他变量引用着,那也是不会回收的
其实现在的js引擎的垃圾回收机制已经很好了,不这么做问题也不大,但是考虑古旧的垃圾回收机制,这么做是一个好习惯