Нет - для безопасности установите атрибуты "onclick" в null, прежде чем удалять содержимое.
erase.onclick = function () {
if (container.innerHTML !== "") {
var inps = container.getElementsByTagName('input');
for (var inpi = 0; inpi < inps.length; ++inpi)
inps[i].onclick = null; // also "onchange", "onblur", anything else
container.innerHTML = "";
alert ("innerHTML = \"\". What about the events ?")
}
}
Сборщик мусора узла DOM в Internet Explorer не знает, что делать с JavaScriptмусор, так что он потерян.(Вполне возможно, что DOM-узлы, висящие на свободных объектах JavaScript, аналогичным образом игнорируются; я не могу точно вспомнить.)
Каждый из этих обработчиков событий будет иметь ссылку на замыкания, сформированные внешнимобработчик onload и обработчик onclick элемента управления insert.Они все будут делиться ссылкой, так что в этом конкретном случае я не думаю , что это было бы так много памяти.Однако, если вы настроите каждый из этих 1000 обработчиков событий с помощью другой функции , тогда будет гораздо больше утечек.
Я не хочу это говорить, но одно из удобствиспользование фреймворка заключается в том, что многие ( не все , но многие) такого рода вещи позаботятся о вас.