javascript - delete操作能释放内存吗
巴扎黑
巴扎黑 2017-04-10 16:15:51
[JavaScript讨论组]

var a = {b:{c:'d'}};

delete a.b;

此时之前为对象{c: 'd'}分配的内存会自动被回收吗?

巴扎黑
巴扎黑

全部回复(3)
迷茫

你得看其是否有被其它变量引用过了

var a = {b:{c:'d'}};
delete a.b;

a的b属性将被删除,因为b属性之前对应的对象没有被其它变量引用,
所以JS引擎会在合适的时候GC {c:'d'}对应的内存

如果

var a = {b:{c:'d'}};
var _a_=a.b;
delete a.b;

a的b属性将被删除,但是{c:'d'}对象就不会被清除掉,因为还有_a_引用它

JS的GC回收机制是自动进行的,delete删除操作执行后并不意味为GC会马上执行~~

PHP中文网

http://www.cnblogs.com/enein/archive/2012/08/23/2651312.html

没细看,撸主去看看吧

阿神

如果不用delete,只是做a.b = null, 并且a.b没有被其他变量引用,效果一样吗?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号