--- title: Proxy handler slug: Web/JavaScript/Reference/Global_Objects/Proxy/handler tags: - ECMAScript 2015 - JavaScript - NeedsTranslation - Proxy - TopicStub - Прокси - Русский - ловушки translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy translation_of_original: Web/JavaScript/Reference/Global_Objects/Proxy/handler ---
{{JSRef}}

Объект-обработчик прокси - это объект, который содержит ловушки для {{jsxref("Proxy", "proxies", "", 1)}}.

Методы

Все ловушки ставятся по желанию разработчика. Если ловушка не была определена, то, по умолчанию, операция перенаправляется на исходный объект (target).

{{jsxref("Global_Objects/Proxy/handler/getPrototypeOf", "handler.getPrototypeOf()")}}
Ловушка для {{jsxref("Object.getPrototypeOf")}}.
{{jsxref("Global_Objects/Proxy/handler/setPrototypeOf", "handler.setPrototypeOf()")}}
Ловушка для {{jsxref("Object.setPrototypeOf")}}.
{{jsxref("Global_Objects/Proxy/handler/isExtensible", "handler.isExtensible()")}}
Ловушка для {{jsxref("Object.isExtensible")}}.
{{jsxref("Global_Objects/Proxy/handler/preventExtensions", "handler.preventExtensions()")}}
Ловушка для {{jsxref("Object.preventExtensions")}}.
{{jsxref("Global_Objects/Proxy/handler/getOwnPropertyDescriptor", "handler.getOwnPropertyDescriptor()")}}
Ловушка для {{jsxref("Object.getOwnPropertyDescriptor")}}.
{{jsxref("Global_Objects/Proxy/handler/defineProperty", "handler.defineProperty()")}}
Ловушка для {{jsxref("Object.defineProperty")}}.
{{jsxref("Global_Objects/Proxy/handler/has", "handler.has()")}}
Ловушка для оператора {{jsxref("Operators/in", "in")}}.
{{jsxref("Global_Objects/Proxy/handler/get", "handler.get()")}}
Ловушка для получения значений из свойств.
{{jsxref("Global_Objects/Proxy/handler/set", "handler.set()")}}
Ловушка для установки значений в свойства.
{{jsxref("Global_Objects/Proxy/handler/deleteProperty", "handler.deleteProperty()")}}
Ловушка для оператора {{jsxref("Operators/delete", "delete")}}.
{{jsxref("Global_Objects/Proxy/handler/ownKeys", "handler.ownKeys()")}}
Ловушка для {{jsxref("Object.getOwnPropertyNames")}} и {{jsxref("Object.getOwnPropertySymbols")}}.
{{jsxref("Global_Objects/Proxy/handler/apply", "handler.apply()")}}
Ловушка для вызова функции.
{{jsxref("Global_Objects/Proxy/handler/construct", "handler.construct()")}}
Ловушка для оператора {{jsxref("Operators/new", "new")}}.

Некоторые нестандартные ловушки устарели и были удалены.

Спецификации

Спецификация Статус Комментарий
{{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots', 'Proxy Object Internal Methods and Internal Slots')}} {{Spec2('ES2015')}} Определении при инициализации.
{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots', 'Proxy Object Internal Methods and Internal Slots')}} {{Spec2('ESDraft')}} Обработчик enumerate был удален.

Совместимость с браузерами

{{CompatibilityTable}}

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 49 [1] {{ CompatGeckoDesktop("18") }} 12 {{CompatOpera(36)}} {{CompatSafari(10)}}
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support {{CompatNo}} {{CompatNo}} {{ CompatGeckoDesktop("18") }} {{CompatNo}} {{CompatNo}} {{CompatNo}}

[1] Разрешен по умолчанию.

Смотрите также