重新创建相同的对象名称时,对象字面量是否为空闲内存?从对象文字重新创建相同的对象名称时,对内存有什么影响?例如
var objLit = {};
for(var i=0; i<5; i++){
objLit['room'] = {};
objLit['room'].name = "A",
objLit['room'].class = 10
}
console.log(objLit['room']);
输出是当前的,但是由
for
循环生成的4个预览对象文字呢?我的问题:is all 4 object auto delete? is all 4 object reference auto delete?
最佳答案
我在Chrome浏览器中尝试过:
var objLit = {};
for(var i = 0; i < 500000000; i++){
objLit['room'] = {};
objLit['room'].name = "A",
objLit['room'].class = 10
}
console.log(objLit['room']);
如果没有释放内存,则您希望该选项卡的内存使用率在循环运行时保持增长。
事实并非如此。如果循环的长度为500000000次,而Chrome的循环为50次,Chrome不会消耗更多的内存。
换句话说,垃圾回收摆脱了先前的值。
(在Chrome浏览器中,但我敢肯定其他浏览器的行为与上述示例相同)。