Показать сообщение отдельно
  #1 (permalink)  
Старый 20.01.2010, 17:01
Новичок на форуме
Отправить личное сообщение для BlueIce Посмотреть профиль Найти все сообщения от BlueIce
 
Регистрация: 05.01.2010
Сообщений: 4

Вопрос о циклических ссылках (JavaScript -> Dom -> JavaScipt)
Привет!
На данный момент существует большая потребность разобраться в циклических ссылках. Поэтому знающих людей очень прошу помочь с нижеследующим примером. Есть такой 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 не сможет её удалить? Или я где-то напутала?

Заранее спасибо за ответы.
Ответить с цитированием