Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Необходим функционал перехвата доступа к свойствам объекта, но без создания лишних структур в виде proxy объектов. Для этого отлично подойдет функционал геттеров и сеттеров (Object.defineProperty)Обложить все и вся пропертями (Object.defineProperty) вы называете «без создания лишних структур», лишнего как раз будет поболее, причем с порчей (трансформацией) исходного объекта.
трансформация DOM элементаНепонятно зачем, во первых это будет тормозить*, во вторых, чтобы отслеживать изменения DOM есть готовое апи MutationObserver (и старые аналоги), в третих, в SPA это не используют, всегда идет изменение DOM из js, поэтому в js это и отслеживается.
Обложить все и вся пропертями...— Не понял, что вы имеете ввиду. Если количество кода, тогда конечно смотрится это менее аккуратно, чем простое присвоение. Если вы про дескрипторы, то лишних структур нет, т.к. дескрипторы есть у каждого свойства по умолчанию.
… открытия америки тут нет.— А никто и не претендует.
Непонятно зачем, во первых это будет тормозить*— Тоже были такие подозрения, но вроде как речь идет о модификации исходных прототипов. Или сама цепочка тоже влияет. Буду рад если дадите ссылки где почитать.
… есть готовое апи MutationObserverбыл не в курсе, спасибо почитаю.
Спасибо за статью, было интересно увидеть ваше виденье данной задачи.
Сравнивать данные реализации не корректно, так как в комментариях я отвечал: > "Я не открывал Америку. Мне было интересно сделать то, что сделано через Proxy. Дань памяти почившему O.o". Мы реализуем разные подходы, используя разные технологии с разными целями.
нельзя навесить геттер-сеттер на DOM елемент.
Двусторонний binding данных с ECMAScript-2015 без Proxy