diff options
| author | Florian Merz <me@fiji-flo.de> | 2021-02-11 14:51:05 +0100 |
|---|---|---|
| committer | Florian Merz <me@fiji-flo.de> | 2021-02-11 14:51:05 +0100 |
| commit | c058fa0fb22dc40ef0225b21a97578cddd0aaffa (patch) | |
| tree | df20f8b4c724b61cb9c34cdb450a7ac77d690bd0 /files/ru/web/javascript/reference/global_objects/proxy/handler | |
| parent | 8260a606c143e6b55a467edf017a56bdcd6cba7e (diff) | |
| download | translated-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')
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> |
