2014-02-13 5 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 содержит сборку мусора, поэтому вы можете безопасно назначать новые объекты одной и той же переменной. Когда объект становится недоступным, он будет собирать мусор.

Смежные вопросы