С массивом Javascript я могу reset в пустое состояние с одним присваиванием:
array.length = 0;
Это заставляет массив "казаться" пустым и готовым к повторному использованию, и насколько я понимаю, это одна "операция", то есть постоянное время.
Есть ли аналогичный способ очистки объекта JS? Я знаю, что могу перебирать их поля, удаляя их:
for (var prop in obj) { if (obj.hasOwnProperty(prop)) { delete obj[prop]; } }
но это имеет линейную сложность.
Я также могу просто выбросить объект и создать новый:
obj = {};
Но "беспорядочное" создание новых объектов приводит к проблемам с Garbage Collection на IE6. (Как описано здесь)