Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
element.onclick = function() { alert(1); }
element.onclick = null;
var theThing = null;
var replaceThing = function ()
{
var originalThing = theThing;
var unused = function () // Данная лямбда ссылается на ссылку originalThing,
// однако на данную лямбду окромя ссылки unusued
// ссылок нет.
{
if (originalThing)
console.log("hi");
};
theThing = // переинициализируем ссылку theThing нижеописанной лямбдой,
// которая ни на что не ссылается. На текущую лямбду будет ссылаться
// ссылка theThing, на предыдущую лямбду в данный
// момент ссылается только лишь ссылка originalThing, верно?
{
longStr: new Array(1000000).join('*'),
someMethod: function ()
{
console.log(someMessage);
}
};
}; // смело грохаем лямбду по ссылке unused, затем
// грохаем лямбду originalThing (gc с подсчетом ссылок)
setInterval(replaceThing, 1000);
4 вида утечек памяти в JavaScript и как с ними бороться