Очистить память объекта в 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;
Другие вопросы по тегам