Рассмотрим эту цитату из the Mozilla Docs on JavaScript memory leaks:DOM: почему это утечка памяти?
function addHandler() { var el = document.getElementById('el'); el.onclick = function() { this.style.backgroundColor = 'red'; } }
Приведенный выше код устанавливает элемент краснеть, когда она нажата. Это также создает утечку памяти. Зачем? Потому что ссылка на el случайно попала в закрытие, созданное для анонимной внутренней функции . Это создает круговую ссылку между объектом JavaScript (функция) и собственным объектом (el).
Пожалуйста, объясните приведенные выше причины утечки простым и сжатым способом, я не получаю точную точку.
Имеет ли сайт/страницу проблему безопасности из-за утечки? Как мне их избежать? Какой еще код может вызвать утечку памяти? Как узнать, когда произошла утечка памяти?
Я абсолютный новичок в теме утечек памяти. Может кто-нибудь прояснить этот материал для меня шаг за шагом? Также может кто-то помочь мне прояснить это утверждение. «Это создает круговую ссылку между объектом JavaScript (функция) и собственным объектом (el)».
http://www.javascriptkit.com/javatutors/closuresleak/, http://www.google.com/search?q=explanation+of+javascript+memory+leaks – CBroe
@GrantKiely от MDN –
http: //javascript.crockford.com/memory/leak.html – undefined