Очистить память объекта в JavaScript
Я использую General Interface в своем веб-приложении, и у меня есть классы и методы javascript для создания объектов для моих классов. Я хотел бы очистить память, когда объекты не используются. Мой вопрос, как я могу очистить память объекта.
Я пробовал с 'obj = null;' и 'удалить объект;' Оба работают не так, как ожидалось.
Есть ли способ очистить объект и память объекта в JavaScript или в общем интерфейсе.
-Sridhar
3 ответа
Ты не можешь Пока каждая ссылка действительно удалена (например, установка null
как и предполагали многие), все зависит от GC, когда он будет запущен и когда он их соберет.
Попытаться установить на null
,
var a = new className();
alert(a);
a = null;
alert(a);
Вы можете использовать функции самовывоза
Self-invoking functions are functions who execute immediately, and create their own closure. Take a look at this:
(function () {
var dog = "German Shepherd";
alert(dog);
})();
alert(dog); // Returns undefined
so the dog variable was only available within that context
РЕДАКТИРОВАТЬ
Если утечка памяти связана с DOM, здесь написано, как с этим справиться. Итак, я попытался решить так:
var obj = {};//your big js object
//do something with it
function clear() {
var that = this;
for (var i in that) {
clear.call(that[i]);
that[i] = null;
}
}
clear.call(obj);//clear it's all properties
obj = null;