JavaScript — основные случаи использования для прокси ES6

Основные варианты использования для прокси ES6

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

Прокси позволяют вам перехватывать операции над вашими объектами, которые в противном случае были бы исключительно обязанностью движка JavaScript; доступ к собственности и мутирование являются двумя очевидными примерами.

Ответ TJ — хороший пример того, что вы не можете сделать без прокси. Иными словами, я использую прокси-серверы, чтобы разрешить одноэлементные экземпляры целевых объектов, позволяющие заменять их резервные хранилища данных и заменять их совершенно новыми объектами, не затрагивая ссылки, указывающие на эти объекты.

Чтобы сделать это без прокси, нам нужно будет выполнить итерации по каждому полю объекта и поменять их местами для новых полей в новом объекте. Хотя JavaScript действительно достаточно динамичен, чтобы сделать это возможным, Прокси-серверы позволяют решать его более элегантным способом: скрытое резервное хранилище прокси-сервера просто заменяется новым объектом, и все будущие обращения к свойствам просто направлены на новое резервное хранилище, а не старое, в то время как внешние ссылки на объект (который на самом деле является прокси) не должны быть мудрыми. Для них это выглядит так, как если бы это был один и тот же объект (потому что он есть), но теперь за ним стоят совершенно другие данные.

Это только один пример того, для чего вы можете использовать Прокси. Они действительно довольно мощные из-за того, насколько они динамичны. Я просто знакомлюсь с ними, но уже могу сказать, что влюблен. :)

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector