Прокси в es6 реализует режим наблюдателя
2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Введение в прокси
Прокси в ES6 — это специальный объект, используемый для создания прокси-объектов. Это позволяет нам определять собственное поведение, например перехват и изменение действий объекта по умолчанию. Прокси можно использовать для перехвата различных операций над объектами, включая доступ к свойствам, присваивание, вызовы функций и т. д.
Функция прокси — установить уровень перехвата перед целевым объектом, который может перехватывать и настраивать различные операции над целевым объектом. Используя прокси, мы можем реализовать такие функции, как контроль доступа, проверка данных и перехват атрибутов целевых объектов.
Прокси-объект оборачивает целевой объект прокси-объектом и предоставляет набор функций-перехватчиков (также называемых «ловушками»), которые могут работать с прокси-объектом. Когда мы работаем с прокси-объектом, мы фактически вызываем эти функции-перехватчики и обрабатываем их соответствующим образом по мере необходимости.
Введение в операции с атрибутами прокси
- get(target, propKey, получатель): перехватить чтение свойств объекта.
- set(target, propKey, value, получатель): перехватывает настройку свойств объекта и возвращает логическое значение.
- has(target, propKey): перехватывает операцию propKey в прокси-сервере и возвращает логическое значение.
- deleteProperty(target, propKey): перехватывает операцию удаления прокси[propKey] и возвращает логическое значение.
- ownKeys(цель): Перехватить Object.getOwnPropertyNames(proxy), Object.getOwnPropertySymbols(proxy), Object.keys(proxy), цикл for...in и вернуть массив. Этот метод возвращает имена свойств всех собственных свойств целевого объекта, в то время как возвращаемый результат Object.keys() включает только собственные проходимые свойства целевого объекта.
- getOwnPropertyDescriptor(target, propKey): перехватывает Object.getOwnPropertyDescriptor(proxy, propKey) и возвращает объект описания свойства.
- defineProperty(target, propKey, propDesc): перехватывает Object.defineProperty(proxy, propKey, propDesc), Object.defineProperties(proxy, propDescs) и возвращает логическое значение.
- PreventExtensions(target): перехватывает Object.preventExtensions(proxy) и возвращает логическое значение.
- getPrototypeOf(target): перехватить Object.getPrototypeOf(proxy) и вернуть объект.
- isExtensible(target): перехватывает Object.isExtensible(proxy) и возвращает логическое значение.
- setPrototypeOf(target, proto): перехватывает Object.setPrototypeOf(proxy, proto) и возвращает логическое значение. Если целевой объект является функцией, есть две дополнительные операции, которые можно перехватить.
- apply(target, object, args): перехватить работу экземпляра Proxy как вызов функции, например proxy(...args), proxy.call(object, ...args), proxy.apply(...).
- construct(target, args): перехватить работу экземпляра Proxy как вызов конструктора, например, new proxy(...args).
использоватьProxy
Реализуйте шаблон наблюдателя
