From 95aca4b4d8fa62815d4bd412fff1a364f842814a Mon Sep 17 00:00:00 2001 From: Ryan Johnson Date: Thu, 29 Apr 2021 16:16:42 -0700 Subject: remove retired locales (#699) --- .../index.html | 330 --------------------- 1 file changed, 330 deletions(-) delete mode 100644 files/uk/web/javascript/enumerability_and_ownership_of_properties/index.html (limited to 'files/uk/web/javascript/enumerability_and_ownership_of_properties') diff --git a/files/uk/web/javascript/enumerability_and_ownership_of_properties/index.html b/files/uk/web/javascript/enumerability_and_ownership_of_properties/index.html deleted file mode 100644 index b176c24495..0000000000 --- a/files/uk/web/javascript/enumerability_and_ownership_of_properties/index.html +++ /dev/null @@ -1,330 +0,0 @@ ---- -title: Перелічуваність та належність властивостей -slug: Web/JavaScript/Enumerability_and_ownership_of_properties -tags: - - JavaScript - - Посібник -translation_of: Web/JavaScript/Enumerability_and_ownership_of_properties ---- -
{{JsSidebar("More")}}
- -

Перелічуваними називаються властивості, чий внутрішній прапор перелічуваності має значення true, що є значенням за замовчуванням для властивостей, створених простим присвоєнням або за допомогою ініціалізатора властивості (властивості, визначені за допомогою Object.defineProperty та подібного, за замовчуванням мають значення перелічуваності false). Перелічувані властивості з'являються у циклах for...in, якщо тільки ключ властивості не є символом. Належність властивостей визначається тим, чи належить властивість безпосередньо до об'єкта, а не до його ланцюга прототипів. Властивості об'єкта також можна отримати всі загалом. Існують численні вбудовані засоби виявлення, перебору/переліку та отримання властивостей об'єкта, а у таблиці нижче наведено, які з них є доступними. Далі наведено зразок коду, який демонструє, як отримати відсутні категорії.

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Перелічуваність та належність властивостей - вбудовані методи виявлення, отримання та перебору
ФункціональністьВласний об'єктВласний об'єкт та його ланцюг прототипівЛише ланцюг прототипів
Виявлення - - - - - - - - - - - - - - - -
ПерелічуваніНеперелічуваніПерелічувані та неперелічувані
-

propertyIsEnumerable

- -

hasOwnProperty

-
-

hasOwnProperty – відфільтровані для виключення перелічуваних властивостей за допомогою propertyIsEnumerable

-
hasOwnProperty
-
- - - - - - - - - - - - - - - -
ПерелічуваніНеперелічуваніПерелічувані та неперелічувані
Недоступні без додаткового кодуНедоступні без додаткового кодуin
-
Недоступні без додаткового коду
Отримання - - - - - - - - - - - - - - - -
ПерелічуваніНеперелічуваніПерелічувані та неперелічувані
-

Object.keys

- -

getOwnPropertyNames 

- -

getOwnPropertySymbols

-
getOwnPropertyNames, getOwnPropertySymbols – відфільтровані для виключення перелічуваних властивостей за допомогою propertyIsEnumerable -

getOwnPropertyNames

- -

getOwnPropertySymbols

-
-
Недоступні без додаткового кодуНедоступні без додаткового коду
Перебір - - - - - - - - - - - - - - - -
ПерелічуваніНеперелічуваніПерелічувані та неперелічувані
-

Object.keys

- -

getOwnPropertyNames 

- -

getOwnPropertySymbols

-
getOwnPropertyNames, getOwnPropertySymbols – відфільтровані для виключення перелічуваних властивостей за допомогою propertyIsEnumerable -

getOwnPropertyNames

- -

getOwnPropertySymbols

-
-
- - - - - - - - - - - - - - - -
ПерелічуваніНеперелічуваніПерелічувані та неперелічувані
-

for..in

- -

(за винятком символів)

-
Недоступні без додаткового кодуНедоступні без додаткового коду
-
Недоступні без додаткового коду
-
- -

Отримання властивостей за перелічуваністю/належністю

- -

Зауважте, що це не найефективніший алгоритм для усіх випадків, але він корисний для швидкої демонстрації.

- - - -
var SimplePropertyRetriever = {
-    getOwnEnumerables: function(obj) {
-        return this._getPropertyNames(obj, true, false, this._enumerable);
-         // Або скористайтесь for..in, відфільтрувавши методом hasOwnProperty, або просто цим: return Object.keys(obj);
-    },
-    getOwnNonenumerables: function(obj) {
-        return this._getPropertyNames(obj, true, false, this._notEnumerable);
-    },
-    getOwnEnumerablesAndNonenumerables: function(obj) {
-        return this._getPropertyNames(obj, true, false, this._enumerableAndNotEnumerable);
-        // Або просто скористайтесь: return Object.getOwnPropertyNames(obj);
-    },
-    getPrototypeEnumerables: function(obj) {
-        return this._getPropertyNames(obj, false, true, this._enumerable);
-    },
-    getPrototypeNonenumerables: function(obj) {
-        return this._getPropertyNames(obj, false, true, this._notEnumerable);
-    },
-    getPrototypeEnumerablesAndNonenumerables: function(obj) {
-        return this._getPropertyNames(obj, false, true, this._enumerableAndNotEnumerable);
-    },
-    getOwnAndPrototypeEnumerables: function(obj) {
-        return this._getPropertyNames(obj, true, true, this._enumerable);
-        // Або можна використати невідфільтрований результат for..in
-    },
-    getOwnAndPrototypeNonenumerables: function(obj) {
-        return this._getPropertyNames(obj, true, true, this._notEnumerable);
-    },
-    getOwnAndPrototypeEnumerablesAndNonenumerables: function(obj) {
-        return this._getPropertyNames(obj, true, true, this._enumerableAndNotEnumerable);
-    },
-    // Приватні статичні фукнції зворотного виклику для перевірки властивостей
-    _enumerable: function(obj, prop) {
-        return obj.propertyIsEnumerable(prop);
-    },
-    _notEnumerable: function(obj, prop) {
-        return !obj.propertyIsEnumerable(prop);
-    },
-    _enumerableAndNotEnumerable: function(obj, prop) {
-        return true;
-    },
-    // Натхненний http://stackoverflow.com/a/8024294/271577
-    _getPropertyNames: function getAllPropertyNames(obj, iterateSelfBool, iteratePrototypeBool, includePropCb) {
-        var props = [];
-
-        do {
-            if (iterateSelfBool) {
-                Object.getOwnPropertyNames(obj).forEach(function(prop) {
-                    if (props.indexOf(prop) === -1 && includePropCb(obj, prop)) {
-                        props.push(prop);
-                    }
-                });
-            }
-            if (!iteratePrototypeBool) {
-                break;
-            }
-            iterateSelfBool = true;
-        } while (obj = Object.getPrototypeOf(obj));
-
-        return props;
-    }
-};
- -

Таблиця виявлення

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
infor..inobj.hasOwnPropertyobj.propertyIsEnumerableObject.keysObject.getOwnPropertyNamesObject.getOwnPropertyDescriptorsReflect.ownKeys()
Перелічуваніtruetruetruetruetruetruetruetrue
Неперелічуваніtruefalsetruefalsefalsetruetruetrue
Символиtruefalsetruetruefalsefalsetruetrue
Успадковані перелічуваніtruetruefalsefalsefalsefalsefalsefalse
Успадковані неперелічуваніtruefalsefalsefalsefalsefalsefalsefalse
Успадковані символиtruefalsefalsefalsefalsefalsefalsefalse
-
- -

Див. також

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