Где живет мой экземпляр YUI 3? (плюс некоторое наблюдение за событиями YUI) - PullRequest
2 голосов
/ 21 января 2012

Этот вопрос в основном просто из академического интереса.

Я начал использовать YUI 3 сегодня и наткнулся на концепцию песочницы. После тщательной попытки найти некоторые объекты (например, мои зарегистрированные обработчики событий) внутри DOM, мне пришлось отказаться. Я просто не мог найти объекты экземпляра, заканчивающиеся там.

Я думаю, что у меня есть в основном закрытые замыкания: даже если бы песочница в значительной степени опиралась на них, в любом месте должна была бы быть хотя бы одна видимая ссылка, по крайней мере, на такие части, как обработчики событий (иначе никто не мог бы получить доступ к чему-либо, и даже замыкания были бы мусором собраны в какое-то время в этом случае), верно?

  1. Где я могу найти экземпляр YUI внутри DOM (без назначения его глобальной переменной)?
  2. Могу ли я найти его: объекты YUI в песочнице или их части вообще живут внутри DOM?

Получение более конкретного (и немного не по теме) примера: У меня есть объект узла YUI с прикрепленными виджетами и событиями YUI. Эти Node-объекты являются оболочкой DOM-узлов. При проверке DOM у обернутых узлов нет наблюдателей.

  • Как события, связанные с объектом Node, запускаются, если внутри DOM ничего не подключено?

1 Ответ

1 голос
/ 23 января 2012

Единственными видимыми ссылками с YUI 3 являются глобальный объект YUI и случайный элемент id, назначаемый YUI. Подписки на события производятся с использованием собственных addEventListener или attachEvent, которые не оставляют доказательств в разметке или innerHTML. Однако есть некоторые инструменты разработчика, которые могут отображать подписки, прикрепленные таким образом, и они отображали бы подписки YUI.

Вы не можете найти экземпляр YUI внутри DOM. В этом смысл песочницы. Экземпляры YUI существуют на уровне JavaScript (технически, на уровне ECMAScript), а не на уровне DOM, исключительно внутри замыканий, если вы явно не назначаете их для глобально доступной переменной или свойства или глобально доступной переменной.

...