Open sisterAn opened 3 years ago
答案是什么?可以告知一下吗?如果方法的执行结果被一个变量接收,C就不会被回收,如果直接执行就会回收?
如果执行方式不是test()
, 而是 var d = test()
,c也一样会被回收。
很强,明白了,c会回收,但是如果var d= test()
的话0x1111这个对象实不会被回收的,因为被d引用了
利用process.memoryUsage通过实验发现即使将test()的执行结果赋值给变量d,分配给c的内存还是会被回收,不明白为什么? @xixizhangfe
利用process.memoryUsage通过实验发现即使将test()的执行结果赋值给变量d,分配给c的内存还是会被回收,不明白为什么? @xixizhangfe
d 是挂载到global上面的嘛?
利用process.memoryUsage通过实验发现即使将test()的执行结果赋值给变量d,分配给c的内存还是会被回收,不明白为什么? @xixizhangfe
当赋值给d这一行代码也执行过后,整个程序就结束了,内存自然要被回收。不回收的话不就造成内存泄露了么?
执行test后,说一说,堆栈发生了啥变化,最后c的内存会被回收吗?