Почему объект существует в то время, когда на него нет ни одной ссылки

162
11 июля 2018, 05:50

У нас есть конструктор Menu, который помогает создать графический компонент из уже существующего элемента в DOM. Сам элемент передаём в конструтор, в виде свойства объекта {elem: document.getElementById('sweets-menu')}. Но каким образом после выполнения конструтора наш элемент продолжает существовать? Ведь ни одной ссылки на него после выполнения конструтора не остаётся.

Элемент:

<div id="sweets-menu" class="menu">
    <span class="title">Сладости</span>
    <ul>
      <li>Торт</li>
      <li>Пончик</li>
      <li>Пирожное</li>
      <li>Шоколадка</li>
      <li>Мороженое</li>
    </ul>
  </div>

Конструтор:

  function Menu(options) {
  var elem = options.elem;
  elem.onmousedown = function() {
    return false;
  }
  elem.onclick = function(event) {
    if (event.target.closest('.title')) {
      elem.classList.toggle('open');
    }
  };
}
// использование
var menu = new Menu({
  elem: document.getElementById('sweets-menu')
});
READ ALSO
Связать 2 таблицы с массивом ключей

Связать 2 таблицы с массивом ключей

Необходимо в MySQL сделать связь 2х таблиц, при этом в одной таблице должно быть несколько ключей к другой таблицеЕсли сложно объяснил, вот пример:

149