From c058fa0fb22dc40ef0225b21a97578cddd0aaffa Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:51:05 +0100 Subject: unslug ru: move --- .../proxy/handler/deleteproperty/index.html | 131 --------------- .../global_objects/proxy/handler/index.html | 135 ---------------- .../global_objects/proxy/handler/set/index.html | 179 --------------------- .../proxy/proxy/deleteproperty/index.html | 131 +++++++++++++++ .../global_objects/proxy/proxy/set/index.html | 179 +++++++++++++++++++++ 5 files changed, 310 insertions(+), 445 deletions(-) delete mode 100644 files/ru/web/javascript/reference/global_objects/proxy/handler/deleteproperty/index.html delete mode 100644 files/ru/web/javascript/reference/global_objects/proxy/handler/index.html delete mode 100644 files/ru/web/javascript/reference/global_objects/proxy/handler/set/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/proxy/proxy/deleteproperty/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/proxy/proxy/set/index.html (limited to 'files/ru/web/javascript/reference/global_objects/proxy') 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 ---- -
{{JSRef}}
- -

Метод handler.deleteProperty() является "ловушкой" (функция-перехватчик) для оператора {{jsxref("Operators/delete", "delete")}}.

- -
{{EmbedInteractiveExample("pages/js/proxyhandler-deleteproperty.html", "taller")}}
- - - -

Синтаксис

- -
var p = new Proxy(target, {
-  deleteProperty: function(target, property) {
-  }
-});
-
- -

Параметры

- -

Следующие параметры передаются в метод deleteProperty.

- -
-
target
-
Целевой объект.
-
property
-
Имя или {{jsxref("Symbol")}} свойства, которое нужно удалить.
-
- -

this в момент вызова ссылается на объект handler.

- -

Возвращаемое значение

- -

Метод deleteProperty должен возвращать {{jsxref("Boolean")}}. Значение true, если свойство было успешно удалено, в противном случае false.

- -

Описание

- -

Метод handler.deleteProperty() является "ловушкой" для оператора {{jsxref("Operators/delete", "delete")}}.

- -

Перехваты

- -

Данная "ловушка" может перехватывать следующие операции:

- - - -

Инварианты

- -

Если следующие инварианты нарушены, то прокси выдаст ошибку {{jsxref("TypeError")}}:

- - - -

Примеры

- -

Следующий код перехватывает действие оператора {{jsxref("Operators/delete", "delete")}}.

- -
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
-
- -

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

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-delete-p', '[[Delete]]')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-delete-p', '[[Delete]]')}}{{Spec2('ESDraft')}} 
- -

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

- -
- - -

{{Compat("javascript.builtins.Proxy.handler.deleteProperty")}}

-
- -

Смотри также

- - 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 ---- -
{{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}}

- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support49 [1]{{ CompatGeckoDesktop("18") }}12{{CompatOpera(36)}}{{CompatSafari(10)}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatNo}}{{ CompatGeckoDesktop("18") }}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -

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

- -

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

- - 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 ---- -
{{JSRef}}
- -

Метод handler.set() является ловушкой для установки значения свойству.

- -

Синтаксис

- -
var p = new Proxy(target, {
-  set: function(target, property, value, receiver) {
-  }
-});
-
- -

Параметры

- -

Следующие параметры передаются методу set() . this привязан к обработчику

- -
-
target
-
Исходный обьект, который проксируется.
-
property
-
Имя свойства, в которое устанавливается значение value.
-
value
-
Значение, устанавливаемое в свойство property.
-
receiver
-
Объект, которому первоначально было присвоено задание. Обычно это сам прокси. Но обработчик set() также может быть вызван косвенно, через цепочку прототипов или различными другими способами.
-      Например, предположим, что скрипт выполняет
obj.name = "jen", при этом obj не является прокси и не имеет собственного свойства .name, но имеет прокси в цепочке прототипов. Будет вызван обработчик прокси set() , а obj будет передан в качестве получателя.
-
-
- -

Возвращаемые результаты

- -

Метод set должен возвращать boolean значение.

- - - -

Описание

- -

Метод handler.set является ловушкой для установки значения свойству.

- -

Перехват

- -

Эта ловушка может перехватывать следующие операции:

- - - -

Инварианты

- -

Если нарушены следующие инваринаты, то proxy выбросит {{jsxref("TypeError")}}:

- - - -

Примеры

- -

Следующий код перехватывает установку значения свойству.

- -
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
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - -
СпецификацияСтатусКомментарий
{{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver', '[[Set]]')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver', '[[Set]]')}}{{Spec2('ESDraft')}}
- -

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

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome("61")}}{{CompatGeckoDesktop("18")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatSafari("10.1")}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("18")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
-
- -

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

- - diff --git a/files/ru/web/javascript/reference/global_objects/proxy/proxy/deleteproperty/index.html b/files/ru/web/javascript/reference/global_objects/proxy/proxy/deleteproperty/index.html new file mode 100644 index 0000000000..a796a08e26 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/proxy/proxy/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 +--- +
{{JSRef}}
+ +

Метод handler.deleteProperty() является "ловушкой" (функция-перехватчик) для оператора {{jsxref("Operators/delete", "delete")}}.

+ +
{{EmbedInteractiveExample("pages/js/proxyhandler-deleteproperty.html", "taller")}}
+ + + +

Синтаксис

+ +
var p = new Proxy(target, {
+  deleteProperty: function(target, property) {
+  }
+});
+
+ +

Параметры

+ +

Следующие параметры передаются в метод deleteProperty.

+ +
+
target
+
Целевой объект.
+
property
+
Имя или {{jsxref("Symbol")}} свойства, которое нужно удалить.
+
+ +

this в момент вызова ссылается на объект handler.

+ +

Возвращаемое значение

+ +

Метод deleteProperty должен возвращать {{jsxref("Boolean")}}. Значение true, если свойство было успешно удалено, в противном случае false.

+ +

Описание

+ +

Метод handler.deleteProperty() является "ловушкой" для оператора {{jsxref("Operators/delete", "delete")}}.

+ +

Перехваты

+ +

Данная "ловушка" может перехватывать следующие операции:

+ + + +

Инварианты

+ +

Если следующие инварианты нарушены, то прокси выдаст ошибку {{jsxref("TypeError")}}:

+ + + +

Примеры

+ +

Следующий код перехватывает действие оператора {{jsxref("Operators/delete", "delete")}}.

+ +
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
+
+ +

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

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-delete-p', '[[Delete]]')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-delete-p', '[[Delete]]')}}{{Spec2('ESDraft')}} 
+ +

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

+ +
+ + +

{{Compat("javascript.builtins.Proxy.handler.deleteProperty")}}

+
+ +

Смотри также

+ + diff --git a/files/ru/web/javascript/reference/global_objects/proxy/proxy/set/index.html b/files/ru/web/javascript/reference/global_objects/proxy/proxy/set/index.html new file mode 100644 index 0000000000..88b030ecc4 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/proxy/proxy/set/index.html @@ -0,0 +1,179 @@ +--- +title: handler.set() +slug: Web/JavaScript/Reference/Global_Objects/Proxy/handler/set +tags: + - Прокси + - метод +translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/set +--- +
{{JSRef}}
+ +

Метод handler.set() является ловушкой для установки значения свойству.

+ +

Синтаксис

+ +
var p = new Proxy(target, {
+  set: function(target, property, value, receiver) {
+  }
+});
+
+ +

Параметры

+ +

Следующие параметры передаются методу set() . this привязан к обработчику

+ +
+
target
+
Исходный обьект, который проксируется.
+
property
+
Имя свойства, в которое устанавливается значение value.
+
value
+
Значение, устанавливаемое в свойство property.
+
receiver
+
Объект, которому первоначально было присвоено задание. Обычно это сам прокси. Но обработчик set() также может быть вызван косвенно, через цепочку прототипов или различными другими способами.
+      Например, предположим, что скрипт выполняет
obj.name = "jen", при этом obj не является прокси и не имеет собственного свойства .name, но имеет прокси в цепочке прототипов. Будет вызван обработчик прокси set() , а obj будет передан в качестве получателя.
+
+
+ +

Возвращаемые результаты

+ +

Метод set должен возвращать boolean значение.

+ + + +

Описание

+ +

Метод handler.set является ловушкой для установки значения свойству.

+ +

Перехват

+ +

Эта ловушка может перехватывать следующие операции:

+ + + +

Инварианты

+ +

Если нарушены следующие инваринаты, то proxy выбросит {{jsxref("TypeError")}}:

+ + + +

Примеры

+ +

Следующий код перехватывает установку значения свойству.

+ +
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
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver', '[[Set]]')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver', '[[Set]]')}}{{Spec2('ESDraft')}}
+ +

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

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome("61")}}{{CompatGeckoDesktop("18")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatSafari("10.1")}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatUnknown}}{{CompatUnknown}}{{CompatGeckoMobile("18")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +

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

+ + -- cgit v1.2.3-54-g00ecf