aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/reference/global_objects/proxy/handler/index.html
blob: eef887a24677a4c76fdd1c1df6ee12c621180f1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
---
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
---
<div>{{JSRef}}</div>

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

<h2 id="Методы">Методы</h2>

<p><span class="VIiyi" lang="ru"><span class="ChMk0b JLqJ4b"><span>Все ловушки ставятся по желанию разработчика.</span></span> <span class="ChMk0b JLqJ4b"><span>Если ловушка не была определена, то, по умолчанию, операция перенаправляется на исходный объект (target).</span></span></span></p>

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

<p>Некоторые нестандартные ловушки <a href="/en-US/docs/Web/JavaScript/Reference/Deprecated_and_obsolete_features#Proxy">устарели и были удалены</a>.</p>

<h2 id="Спецификации">Спецификации</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Спецификация</th>
   <th scope="col">Статус</th>
   <th scope="col">Комментарий</th>
  </tr>
  <tr>
   <td>{{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots', 'Proxy Object Internal Methods and Internal Slots')}}</td>
   <td>{{Spec2('ES2015')}}</td>
   <td>Определении при инициализации.</td>
  </tr>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots', 'Proxy Object Internal Methods and Internal Slots')}}</td>
   <td>{{Spec2('ESDraft')}}</td>
   <td>Обработчик <code>enumerate</code> был удален.</td>
  </tr>
 </tbody>
</table>

<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>

<p>{{CompatibilityTable}}</p>

<div id="compat-desktop">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Feature</th>
   <th>Chrome</th>
   <th>Firefox (Gecko)</th>
   <th>Internet Explorer</th>
   <th>Opera</th>
   <th>Safari</th>
  </tr>
  <tr>
   <td>Basic support</td>
   <td>49 [1]</td>
   <td>{{ CompatGeckoDesktop("18") }}</td>
   <td>12</td>
   <td>{{CompatOpera(36)}}</td>
   <td>{{CompatSafari(10)}}</td>
  </tr>
 </tbody>
</table>
</div>

<div id="compat-mobile">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Feature</th>
   <th>Android</th>
   <th>Chrome for Android</th>
   <th>Firefox Mobile (Gecko)</th>
   <th>IE Mobile</th>
   <th>Opera Mobile</th>
   <th>Safari Mobile</th>
  </tr>
  <tr>
   <td>Basic support</td>
   <td>{{CompatNo}}</td>
   <td>{{CompatNo}}</td>
   <td>{{ CompatGeckoDesktop("18") }}</td>
   <td>{{CompatNo}}</td>
   <td>{{CompatNo}}</td>
   <td>{{CompatNo}}</td>
  </tr>
 </tbody>
</table>
</div>

<p>[1] <a href="https://www.chromestatus.com/features/4811188005240832">Разрешен по умолчанию</a>.</p>

<h2 id="Смотрите_также">Смотрите также</h2>

<ul>
 <li>{{jsxref("Proxy")}}</li>
</ul>