javascript 如果 new 了太多对象,内存会不会爆满?
javascript吧
全部回复
仅看楼主
level 3
88858886888 楼主
<body>
<h1>显示时间</h1>
<div>some times</div>
<script>
var tim=document.querySelector('div');
setInterval(fn,1000);
function fn(){
tim.innerHTML=new Date();
}
</script>
</body>
--------------------------------------------------
就像上面,是不是 每一秒 new 一个新的 时间对象? 这样内存会不会 爆满? 会不会死机 ?
这样的写法,是不是 不好?
还请大神指点迷津。
[撒钱]
2022年12月17日 10点12分 1
level 13
不会,只要你 new 出来的对象没有放到能够被追溯的地方,引擎会自动把他清理掉。
比如你这里,Date 被 new 出来之后没有存到能够被 外部 访问的变量中,只是转换成了一次字符串,字符串被拿走,他自己也没有其他任何工作,所以就可以算作被抛弃了,js 引擎会自动清理掉这些没用的东西。
2022年12月19日 00点12分 3
[花心] 原来如此 ,thank you very much
2022年12月19日 04点12分
level 12
如果你把这些date都打印到控制台可能就会内存爆满,但是浏览器会控制每个网页的内存限制的,所以不会导致操作系统内存爆满
2023年01月07日 08点01分 4
level 12
因为打印到控制台这些date都存在引用了,无法被垃圾回收了
2023年01月07日 08点01分 5
1