Очистить память объекта в javascript

Я использую общий интерфейс в своем веб-приложении, и у меня есть классы и методы javascript для создания объектов для моих классов. Я хотел бы очистить память, когда объекты не используются. Мой вопрос в том, как я могу очистить память объекта.

Я пробовал с 'obj = null;' и «удалить объект». Оба не работают должным образом.

Есть ли способ очистить память объекта и объекта в JavaScript или в общем интерфейсе.

- Шридхар


person Sridhar Boganathan    schedule 18.05.2012    source источник
comment
В Javascript уже есть сборщик мусора, который очищает все неиспользуемые ссылки в памяти.   -  person Fabrizio Calderan    schedule 18.05.2012
comment
Я думаю, что вопрос уже задан, проверьте эту ссылку ниже stackoverflow.com/questions/5115054/   -  person aravindKrishna    schedule 18.05.2012


Ответы (3)


Вы не можете. Пока каждая ссылка действительно удалена (например, установка на null, как многие предлагали), сборщик мусора полностью зависит от того, когда он будет запущен и когда он их соберет.

person Asherah    schedule 21.05.2012

попробуйте установить null.

var a = new className();
alert(a);

a = null;
alert(a);
person JDev    schedule 18.05.2012

Вы можете использовать самозапускающиеся функции

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

EDIT
Если утечка памяти связана с 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;
person Ikrom    schedule 18.05.2012
comment
Я очень хорошо понимаю эти вещи. Но я хотел бы освободить память явно. Так как мои объекты используются глобально и память приходится очищать, когда эти объекты больше не нужны. - person Sridhar Boganathan; 21.05.2012