Привет!
На данный момент существует большая потребность разобраться в циклических ссылках. Поэтому знающих людей очень прошу помочь с нижеследующим примером. Есть такой javascript код и html.
<html>
<head>
<script type="text/javascript">
function SuperDiv(id) {
var privateDiv;
this.Init() = function() { privateDiv = document.getElementById(id);}
this.Hide() = function() { privateDiv.style.display = "none"; };
}
var mySuperDiv = new SuperDiv("myDiv");
</script>
</head>
<body onload="mySuperDiv.Init()">
<div id="myDiv" onclick="mySuperDiv.Hide()"></div>
</body>
</html>
Вопрос такой - образуется ли при таком подходе циклическая ссылка JavaScript -> Dom -> JavaScipt? (Особое внимание !!!
Вопрос не в том - правилен ли такой код или нет. И есть ли в нём смысл или нет! Это просто пример!
Насколько я понимаю - при создании замыкания функцией Hide - она сохраняет ссылку на объект переменных функции SuperDiv (для доступа к приватной переменной privateDiv). privateDiv держит ссылку на Dom элемент myDiv. А myDiv, в свою очередь, ссылается на функцию Hide через свойство onclick. Т е это циклическая ссылка и сборщик мусора IE не сможет её удалить? Или я где-то напутала?
Заранее спасибо за ответы.