Инкапсуляция JavaScript с помощью WebComponents/ShadowDOM

Вероятно, простой вопрос, на который я действительно не нашел ответа:

Действительно ли ShadowDOM или WebComponents (как более крупный стандарт) также инкапсулируют JavaScript? Нравится иметь отдельные пространства имен для каждого компонента?

Судя по тому, что я столкнулся с Polymer, этого еще не произошло, что очевидно, учитывая, что полимер выполняет полифиллинг через JS.

Спасибо!


person AlessandroEmm    schedule 24.09.2013    source источник


Ответы (1)


Shadow DOM и Custom Element ничего не говорят об инкапсуляции скриптов. Единственное, что дает вам SD, — это <style> инкапсуляция и перенацеливание событий (события выглядят так, как будто они исходят от хост-элемента, а не от внутренних элементов. Для пользовательских элементов вы можете сделать хитрости для пространства имен вашего JS (например, анонимные самовызывающиеся функции, перенос конструктора в пространство имен и т. д.)

person ebidel    schedule 24.09.2013
comment
Эй, ссылка на трюки устарела :'( Не могли бы вы обновить ее, пожалуйста, я хочу знать обходные пути для этого, а также карту маршрутов - person aemonge; 17.08.2017
comment
Статья доступна в Веб-архив (ищите Могу ли я использовать атрибут конструктора, не загрязняя глобальное пространство имен?) - person sgruetter; 01.11.2020