From 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:43:23 -0500 Subject: initial commit --- .../object/getownpropertydescriptors/index.html | 118 +++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 files/uk/web/javascript/reference/global_objects/object/getownpropertydescriptors/index.html (limited to 'files/uk/web/javascript/reference/global_objects/object/getownpropertydescriptors') diff --git a/files/uk/web/javascript/reference/global_objects/object/getownpropertydescriptors/index.html b/files/uk/web/javascript/reference/global_objects/object/getownpropertydescriptors/index.html new file mode 100644 index 0000000000..fa5dae0e79 --- /dev/null +++ b/files/uk/web/javascript/reference/global_objects/object/getownpropertydescriptors/index.html @@ -0,0 +1,118 @@ +--- +title: Object.getOwnPropertyDescriptors() +slug: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors +tags: + - JavaScript + - Object + - Об'єкт + - метод +translation_of: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors +--- +
{{JSRef}}
+ +

Метод Object.getOwnPropertyDescriptors() повертає дескриптори всіх особистих властивостей наданого об'єкта.

+ +
{{EmbedInteractiveExample("pages/js/object-getownpropertydescriptors.html")}}
+ +

Синтаксис

+ +
Object.getOwnPropertyDescriptors(obj)
+ +

Параметри

+ +
+
obj
+
Об'єкт, для якого потрібно отримати дескриптори всіх особистих властивостей.
+
+ +

Значення, що повертається

+ +

Об'єкт, що містить дескриптори всіх особистих властивостей об'єкта. Може бути порожній об'єкт, якщо властивостей немає.

+ +

Опис

+ +

Цей метод дозволяє вивчити докладний опис усіх особистих властивостей об'єкта. Властивість у JavaScript складається з імені у вигляді рядка або {{jsxref("Symbol","символа")}} та дескриптора властивості. Більше інформації щодо типів дескрипторів властивостей та їхніх атрибутів можна знайти у статті {{jsxref("Object.defineProperty()")}}.

+ +

Дескриптор властивості - це запис, що має деякі з наступних атрибутів:

+ +
+
value
+
Значення, пов'язане з властивістю (тільки у дескрипторах даних).
+
writable
+
Дорівнює true тоді й тільки тоді, коли значення, пов'язане з властивістю, може бути змінене (тільки у дескрипторах даних).
+
get
+
Функція, що служить гетером властивості, або {{jsxref("undefined")}}, якщо гетера немає (тільки у дескрипторах доступу).
+
set
+
Функція, що служить сетером властивості, або {{jsxref("undefined")}}, якщо сетера немає (тільки у дескрипторах доступу).
+
configurable
+
Дорівнює true тоді й тільки тоді, коли тип цього дескриптора властивості може бути змінений, та якщо властивість може бути видалена з відповідного об'єкта.
+
enumerable
+
Дорівнює true тоді й тільки тоді, коли ця властивість з'являється під час переліку властивостей на відповідному об'єкті.
+
+ +

Приклади

+ +

Створення дрібного клону

+ +

В той час як метод {{jsxref("Object.assign()")}} скопіює лише особисті та перелічувані властивості з наданого об'єкта у цільовий, ви можете скористатись цим методом та {{jsxref("Object.create()")}} для дрібного копіювання між двома невідомими об'єктами:

+ +
Object.create(
+  Object.getPrototypeOf(obj),
+  Object.getOwnPropertyDescriptors(obj)
+);
+
+ +

Створення підкласу

+ +

Типовим способом створення підкласу є визначити підклас, присвоїти його прототипу екземпляр суперкласу, і далі визначити властивості на цьому екземплярі. Це може бути незграбно, особливо для гетерів та сетерів. Ви можете натомість скористатись даним кодом для призначення прототипу:

+ +
function superclass() {}
+superclass.prototype = {
+  // Визначте тут свої методи та властивості
+};
+function subclass() {}
+subclass.prototype = Object.create(
+  superclass.prototype,
+  {
+    // Визначте тут свої методи та властивості
+  }
+);
+
+ +

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

+ + + + + + + + + + + + + + + + + + + +
СпецифікаціяСтатусКоментар
{{SpecName('ESDraft', '#sec-object.getownpropertydescriptors', 'Object.getOwnPropertyDescriptors')}}{{Spec2('ESDraft')}}Початкове визначення у ECMAScript 2017.
{{SpecName('ES2017', '#sec-object.getownpropertydescriptors', 'Object.getOwnPropertyDescriptors')}}{{Spec2('ES2017')}}
+ +

Сумісність з веб-переглядачами

+ +
+ + +

{{Compat("javascript.builtins.Object.getOwnPropertyDescriptors")}}

+
+ +

Див. також

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