Есть следующий код
function A(){
var self = this; // Сохраняем this, чтобы потом её использовать в setTimeout
this.timer = setTimeout(function(){
self.clear();
}, 0);
this.clear = function(){
// ....
}
// ....
}
var foo = new A();
foo = undefined; // Удаляем объект
Я слышал, что в JS у объектов есть счётчики, сколько на него ссылаются. И когда счётчик равен нулю, то сборщик мусора освобождает память.
На созданный объект существует две ссылки. Это foo и ссылка в самом объекте на "себя же".
Собственно вопрос: освободится ли память из под объекта или переменная self не позволит этого сделать