diff options
| author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
|---|---|---|
| committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
| commit | 074785cea106179cb3305637055ab0a009ca74f2 (patch) | |
| tree | e6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/ru/web/javascript/reference/global_objects/proxy/handler/deleteproperty | |
| parent | da78a9e329e272dedb2400b79a3bdeebff387d47 (diff) | |
| download | translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2 translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip | |
initial commit
Diffstat (limited to 'files/ru/web/javascript/reference/global_objects/proxy/handler/deleteproperty')
| -rw-r--r-- | files/ru/web/javascript/reference/global_objects/proxy/handler/deleteproperty/index.html | 131 |
1 files changed, 131 insertions, 0 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 new file mode 100644 index 0000000000..a796a08e26 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/proxy/handler/deleteproperty/index.html @@ -0,0 +1,131 @@ +--- +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> |
