2014-02-13 30 views
2

我认为这是行,但我想确认。JavaScript重复使用“新”与相同的目标变量

在JavaScript中,我可以重复地分配一个新的对象到同一个变量,而不会造成内存泄漏或其他问题?

实施例:

var rect = new Rectangle(left1, top1, width1, height1); 
... 
... 
... // some stuff 
... 
rect = new Rectangle(left2, top2, width2, height2); // change the rect size 
... 
... 
... // some other stuff 
... 
rect = new Rectangle(left3, top3, width3, height3); // change the rect size again 

Rectangle类只是保持矩形的表示,包括从通过那些计算出的几个参数。我认为垃圾收集会照顾它,但作为一个C++程序员,重复使用“新”会让我紧张!

+3

我认为垃圾收集会清除内存)所以不在意这个) –

+0

这不是内存泄漏,但可能效率低下。你有没有考虑重用现有的对象?只需分配新的属性。或者使用'Rectangle.call(rect,left2,top2,width2,height2);'进行重新初始化。 – Bergi

+0

谢谢。是的,我已经重写了代码以提高效率,但我仍然对JavaScript不熟悉,所以我需要确保理解垃圾收集在这种情况下的表现。感谢所有的迅速反应。 – boingy

回答

2

JavaScript有垃圾回收,所以你可以安全地分配新的对象到同一个变量。 当一个对象变得不可访问时,它将被垃圾收集。

相关问题