Proxy и Reflect
Вопрос
Что такое Proxy и где он реально применяется?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
объект-обёртка, перехватывающий операции: get, set, has, deleteProperty
ловушки позволяют менять поведение доступа, не трогая исходный объект
Reflect даёт стандартные реализации этих же операций
на Proxy построена реактивность Vue 3 и MobX
цена: медленнее обычного доступа, отладка сложнее
Что могут спросить следом
- Как на Proxy сделать объект с значением по умолчанию
- Почему Proxy нельзя полностью подменить объектом
- Как устроена реактивность на Proxy в двух словах
Разбор
Proxy оборачивает объект и перехватывает операции с ним - get, set, has,
deleteProperty, apply. Ловушка получает цель и ключ и может вернуть что угодно.
Reflect - набор функций со стандартным поведением тех же операций, чтобы из ловушки
легко вызвать «как было бы без прокси».
Реальные применения: реактивность (Vue 3, MobX отслеживают чтение свойств именно так), валидация при записи, объекты с значениями по умолчанию, мягкие заглушки в тестах. Цена - доступ заметно медленнее обычного и стек в отладчике становится глубже.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.