aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/reference/global_objects/proxy/handler
diff options
context:
space:
mode:
authorFlorian Merz <me@fiji-flo.de>2021-02-11 14:51:05 +0100
committerFlorian Merz <me@fiji-flo.de>2021-02-11 14:51:05 +0100
commitc058fa0fb22dc40ef0225b21a97578cddd0aaffa (patch)
treedf20f8b4c724b61cb9c34cdb450a7ac77d690bd0 /files/ru/web/javascript/reference/global_objects/proxy/handler
parent8260a606c143e6b55a467edf017a56bdcd6cba7e (diff)
downloadtranslated-content-c058fa0fb22dc40ef0225b21a97578cddd0aaffa.tar.gz
translated-content-c058fa0fb22dc40ef0225b21a97578cddd0aaffa.tar.bz2
translated-content-c058fa0fb22dc40ef0225b21a97578cddd0aaffa.zip
unslug ru: move
Diffstat (limited to 'files/ru/web/javascript/reference/global_objects/proxy/handler')
-rw-r--r--files/ru/web/javascript/reference/global_objects/proxy/handler/deleteproperty/index.html131
-rw-r--r--files/ru/web/javascript/reference/global_objects/proxy/handler/index.html135
-rw-r--r--files/ru/web/javascript/reference/global_objects/proxy/handler/set/index.html179
3 files changed, 0 insertions, 445 deletions
diff --git a/files/ru/web/javascript/reference/global_objects/proxy/handler/deleteproperty/index.html b/files/ru/web/javascript/reference/global_objects/proxy/handler/deleteproperty/index.html
deleted file mode 100644
index a796a08e26..0000000000
--- a/files/ru/web/javascript/reference/global_objects/proxy/handler/deleteproperty/index.html
+++ /dev/null
@@ -1,131 +0,0 @@
----
-title: handler.deleteProperty()
-slug: Web/JavaScript/Reference/Global_Objects/Proxy/handler/deleteProperty
-tags:
- - Прокси
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/deleteProperty
----
-<div>{{JSRef}}</div>
-
-<p>Метод <strong><code>handler.deleteProperty()</code></strong> является "ловушкой" (функция-перехватчик) для оператора {{jsxref("Operators/delete", "delete")}}.</p>
-
-<div>{{EmbedInteractiveExample("pages/js/proxyhandler-deleteproperty.html", "taller")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="brush: js">var p = new Proxy(target, {
- deleteProperty: function(target, property) {
- }
-});
-</pre>
-
-<h3 id="Параметры">Параметры</h3>
-
-<p>Следующие параметры передаются в метод <code>deleteProperty</code>.</p>
-
-<dl>
- <dt><code>target</code></dt>
- <dd>Целевой объект.</dd>
- <dt><code>property</code></dt>
- <dd>Имя или {{jsxref("Symbol")}} свойства, которое нужно удалить.</dd>
-</dl>
-
-<p><code>this</code> в момент вызова ссылается на объект handler.</p>
-
-<h3 id="Возвращаемое_значение">Возвращаемое значение</h3>
-
-<p>Метод <code>deleteProperty</code> должен возвращать {{jsxref("Boolean")}}. Значение <code>true</code>, если свойство было успешно удалено, в противном случае <code>false</code>.</p>
-
-<h2 id="Описание">Описание</h2>
-
-<p>Метод <code><strong>handler.deleteProperty()</strong></code> является "ловушкой" для оператора {{jsxref("Operators/delete", "delete")}}.</p>
-
-<h3 id="Перехваты">Перехваты</h3>
-
-<p>Данная "ловушка" может перехватывать следующие операции:</p>
-
-<ul>
- <li>Удаление свойства: <code>delete proxy[foo]</code> and <code>delete proxy.foo</code></li>
- <li>{{jsxref("Reflect.deleteProperty()")}}</li>
-</ul>
-
-<h3 id="Инварианты">Инварианты</h3>
-
-<p>Если следующие инварианты нарушены, то прокси выдаст ошибку {{jsxref("TypeError")}}:</p>
-
-<ul>
- <li>Свойство не может быть удалено, если оно неконфигурируемое собственное свойство целевого объекта.</li>
-</ul>
-
-<h2 id="Примеры">Примеры</h2>
-
-<p>Следующий код перехватывает действие оператора {{jsxref("Operators/delete", "delete")}}.</p>
-
-<pre class="brush: js">var p = new Proxy({}, {
-  deleteProperty: function(target, prop) {
-    if (prop in target){
-      delete target[prop]
-      console.log('property removed: ' + prop)
-      return true
-    }
-    else {
-      console.log('property not found: ' + prop)
-      return false
-    }
-  }
-})
-
-var result
-
-p.a = 10
-console.log('a' in p)  // true
-
-result = delete p.a    // "property removed: a"
-console.log(result)    // true
-console.log('a' in p)  // false
-
-result = delete p.a    // "property not found: a"
-console.log(result)    // false
-</pre>
-
-<h2 id="Спецификации">Спецификации</h2>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <th scope="col">Specification</th>
- <th scope="col">Status</th>
- <th scope="col">Comment</th>
- </tr>
- <tr>
- <td>{{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-delete-p', '[[Delete]]')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Initial definition.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-delete-p', '[[Delete]]')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.Proxy.handler.deleteProperty")}}</p>
-</div>
-
-<h2 id="Смотри_также">Смотри также</h2>
-
-<ul>
- <li>{{jsxref("Proxy")}}</li>
- <li>{{jsxref("Proxy.handler", "handler")}}</li>
- <li>{{jsxref("Operators/delete", "delete")}} operator</li>
- <li>{{jsxref("Reflect.deleteProperty()")}}</li>
-</ul>
diff --git a/files/ru/web/javascript/reference/global_objects/proxy/handler/index.html b/files/ru/web/javascript/reference/global_objects/proxy/handler/index.html
deleted file mode 100644
index 472e9d4735..0000000000
--- a/files/ru/web/javascript/reference/global_objects/proxy/handler/index.html
+++ /dev/null
@@ -1,135 +0,0 @@
----
-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
----
-<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>
diff --git a/files/ru/web/javascript/reference/global_objects/proxy/handler/set/index.html b/files/ru/web/javascript/reference/global_objects/proxy/handler/set/index.html
deleted file mode 100644
index 88b030ecc4..0000000000
--- a/files/ru/web/javascript/reference/global_objects/proxy/handler/set/index.html
+++ /dev/null
@@ -1,179 +0,0 @@
----
-title: handler.set()
-slug: Web/JavaScript/Reference/Global_Objects/Proxy/handler/set
-tags:
- - Прокси
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/set
----
-<div>{{JSRef}}</div>
-
-<p><span id="result_box" lang="ru"><span title="The handler.set() method is a trap for setting a property value.
-">Метод <strong>handler.set()</strong> является ловушкой для установки </span></span><span lang="ru"><span title="The handler.set() method is a trap for setting a property value.
-">значения </span></span><span id="result_box" lang="ru"><span title="The handler.set() method is a trap for setting a property value.
-">свойств</span></span><span lang="ru"><span title="The handler.set() method is a trap for setting a property value.
-">у</span></span><span lang="ru"><span title="The handler.set() method is a trap for setting a property value.
-">.</span></span></p>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="brush: js notranslate">var p = new Proxy(target, {
- set: function(target, property, value, receiver) {
- }
-});
-</pre>
-
-<h3 id="Параметры">Параметры</h3>
-
-<p><span id="result_box" lang="ru"><span>Следующие параметры передаются методу </span></span><code>set()</code> <span lang="ru"><span>.</span> </span><code>this</code><span lang="ru"><span> привязан к обработчику</span></span></p>
-
-<dl>
- <dt><code>target</code></dt>
- <dd>Исходный обьект, который проксируется.</dd>
- <dt><code>property</code></dt>
- <dd><span id="result_box" lang="ru"><span>Имя свойства, в которое устанавливается значение </span></span><code>value</code><span lang="ru"><span>.</span></span></dd>
- <dt><code>value</code></dt>
- <dd><span id="result_box" lang="ru"><span>Значение, устанавливаемое в свойство </span></span><code>property</code><span lang="ru"><span>.</span></span></dd>
- <dt><code>receiver</code></dt>
- <dd><span id="result_box" lang="ru"><span>Объект, которому первоначально было присвоено задание.</span> <span>Обычно это сам прокси.</span> <span>Но обработчик </span></span><code>set()</code><span lang="ru"><span> также может быть вызван косвенно, через цепочку прототипов или различными другими способами.</span><br>
-      <span>Например, предположим, что скрипт выполняет </span></span><code><var>obj</var>.name = "jen"</code><span lang="ru"><span>, при этом </span></span><code><var>obj</var></code><span lang="ru"><span> не является прокси и не имеет собственного свойства </span></span><code>.name</code><span lang="ru"><span>, но имеет прокси в цепочке прототипов.</span> Б<span>удет вызван обработчик прокси </span></span><code>set()</code><span lang="ru"><span> , а </span></span><code><var>obj</var></code><span lang="ru"><span> будет передан в качестве получателя.</span></span></dd>
- <dd></dd>
-</dl>
-
-<h3 id="Возвращаемые_результаты">Возвращаемые результаты</h3>
-
-<p>Метод <code>set</code> <span id="result_box" lang="ru"><span>должен возвращать boolean значение</span></span>.</p>
-
-<ul>
- <li>Возвращает <code>true</code>, если <span id="result_box" lang="ru"><span>присвоение выполнено успешно</span></span>.</li>
- <li>Если метод <code>set()</code> возвращает <code>false</code>, <span id="result_box" lang="ru"><span>а присваивание произошло в коде строгого режима, то будет выброшена</span></span> {{jsxref("TypeError")}}.</li>
-</ul>
-
-<h2 id="Описание">Описание</h2>
-
-<p>Метод <code><strong>handler.set</strong></code> <span id="result_box" lang="ru"><span title="The handler.set() method is a trap for setting a property value.
-">является ловушкой для установки </span></span><span lang="ru"><span title="The handler.set() method is a trap for setting a property value.
-">значения </span></span><span id="result_box" lang="ru"><span title="The handler.set() method is a trap for setting a property value.
-">свойств</span></span><span lang="ru"><span title="The handler.set() method is a trap for setting a property value.
-">у</span></span>.</p>
-
-<h3 id="Перехват">Перехват</h3>
-
-<p>Эта ловушка может перехватывать следующие операции:</p>
-
-<ul>
- <li>Установка значения свойству: <code>proxy[foo] = bar</code> and <code>proxy.foo = bar</code></li>
- <li>Установка значения наследованному свойству: <code>Object.create(proxy)[foo] = bar</code></li>
- <li>{{jsxref("Reflect.set()")}}</li>
-</ul>
-
-<h3 id="Инварианты">Инварианты</h3>
-
-<p>Если нарушены следующие инваринаты, то proxy выбросит {{jsxref("TypeError")}}:</p>
-
-<ul>
- <li><span class="VIiyi" lang="ru"><span class="ChMk0b JLqJ4b"><span>Невозможно изменить значение свойства так, чтобы оно отличалось от значения соответствующего свойства целевого объекта, если соответствующее свойство целевого объекта не является доступным для записи и не настраиваемым свойством данных.</span></span></span></li>
- <li><span class="VIiyi" lang="ru"><span class="ChMk0b JLqJ4b"><span>Невозможно установить значение свойства, если соответствующее свойство целевого объекта является неконфигурируемым свойством средства доступа, для которого в качестве атрибута [[Set]] указано значение undefined.</span></span></span></li>
- <li><span class="VIiyi" lang="ru"><span class="ChMk0b JLqJ4b"><span>В строгом режиме при возврате из обработчика </span></span></span><code>set()</code><span class="VIiyi" lang="ru"><span class="ChMk0b JLqJ4b"><span> значения </span></span></span><code>false</code><span class="VIiyi" lang="ru"><span class="ChMk0b JLqJ4b"><span>, будет выброшено исключение {{jsxref ("TypeError")}}</span></span></span>.</li>
-</ul>
-
-<h2 id="Примеры">Примеры</h2>
-
-<p><span class="VIiyi" lang="ru"><span class="ChMk0b JLqJ4b"><span>Следующий код перехватывает установку значения свойству</span></span></span><span lang="ru"><span>.</span></span></p>
-
-<pre class="brush: js notranslate">var p = new Proxy({}, {
-  set: function(target, prop, value, receiver) {
-    target[prop] = value
-    console.log('property set: ' + prop + ' = ' + value)
-    return true
-  }
-})
-
-console.log('a' in p)  // false
-
-p.a = 10               // "property set: a = 10"
-console.log('a' in p)  // true
-console.log(p.a)       // 10
-</pre>
-
-<h2 id="Specifications">Specifications</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-set-p-v-receiver', '[[Set]]')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Initial definition.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver', '[[Set]]')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
-
-<div>{{CompatibilityTable}}</div>
-
-<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>{{CompatChrome("61")}}</td>
- <td>{{CompatGeckoDesktop("18")}}</td>
- <td>{{CompatUnknown}}</td>
- <td>{{CompatUnknown}}</td>
- <td>{{CompatSafari("10.1")}}</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>{{CompatUnknown}}</td>
- <td>{{CompatUnknown}}</td>
- <td>{{CompatGeckoMobile("18")}}</td>
- <td>{{CompatUnknown}}</td>
- <td>{{CompatUnknown}}</td>
- <td>{{CompatUnknown}}</td>
- </tr>
- </tbody>
-</table>
-</div>
-
-<h2 id="Смотрите_также">Смотрите также</h2>
-
-<ul>
- <li>{{jsxref("Proxy")}}</li>
- <li>{{jsxref("Proxy.handler", "handler")}}</li>
- <li>{{jsxref("Reflect.set()")}}</li>
-</ul>