aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/global_objects/object
diff options
context:
space:
mode:
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/object')
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/__definegetter__/index.html101
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/__definesetter__/index.html116
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/__lookupgetter__/index.html89
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/__lookupsetter__/index.html89
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/assign/index.html273
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/constructor/index.html237
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/create/index.html406
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/defineproperties/index.html198
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/defineproperty/index.html501
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/entries/index.html157
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/freeze/index.html256
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/fromentries/index.html112
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.html159
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/getownpropertydescriptors/index.html118
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/getownpropertynames/index.html175
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/getownpropertysymbols/index.html84
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/getprototypeof/index.html98
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/hasownproperty/index.html158
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/index.html267
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/is/index.html128
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/isextensible/index.html112
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/isfrozen/index.html178
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/isprototypeof/index.html125
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/issealed/index.html139
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/keys/index.html171
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/object/index.html84
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/preventextensions/index.html139
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/propertyisenumerable/index.html149
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/proto/index.html127
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/seal/index.html151
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/setprototypeof/index.html220
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/tolocalestring/index.html111
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/tosource/index.html132
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/tostring/index.html148
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/valueof/index.html115
-rw-r--r--files/uk/web/javascript/reference/global_objects/object/values/index.html104
36 files changed, 0 insertions, 5927 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/object/__definegetter__/index.html b/files/uk/web/javascript/reference/global_objects/object/__definegetter__/index.html
deleted file mode 100644
index cf5a10c622..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/__definegetter__/index.html
+++ /dev/null
@@ -1,101 +0,0 @@
----
-title: Object.prototype.__defineGetter__()
-slug: Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__
-tags:
- - JavaScript
- - Об'єкт
- - застарілий
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__
----
-<div>{{JSRef}}</div>
-
-<div class="warning">
-<p>Ця функціональність не рекомендована до використання на користь визначення гетерів за допомогою <a href="/uk/docs/Web/JavaScript/Reference/Operators/Ініціалізація_об’єктів">синтаксису ініціалізації об'єктів</a> або API {{jsxref("Object.defineProperty()")}}. Хоча ця функціональність широко реалізована, вона описана у <a href="https://tc39.github.io/ecma262/#sec-additional-ecmascript-features-for-web-browsers">специфікації ECMAScript</a> тільки задля legacy-використання. Цей метод не бажано використовувати, оскільки існують кращі альтернативи.</p>
-</div>
-
-<p>Метод <code><strong>__defineGetter__</strong></code> прив'язує властивість об'єкта до функції, яка викликатиметься під час звернення до властивості.</p>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><var>obj</var>.__defineGetter__(<var>prop</var>, <var>func</var>)</pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>prop</code></dt>
- <dd>Рядок, що містить ім'я властивості, яку треба прив'язати до наданої функції.</dd>
- <dt><code>func</code></dt>
- <dd>Функція, що прив'язується до вказаної властивості.</dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>{{jsxref("undefined")}}.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Метод <code>__defineGetter__</code> дозволяє визначити {{jsxref("Operators/get", "гетер", "", 1)}} на існуючому об'єкті.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<pre class="brush: js">// Нестандартний та не рекомендований спосіб
-
-var o = {};
-o.__defineGetter__('gimmeFive', function() { return 5; });
-console.log(o.gimmeFive); // 5
-
-
-// Стандартні способи
-
-// Використання оператора get
-var o = { get gimmeFive() { return 5; } };
-console.log(o.gimmeFive); // 5
-
-// Використання Object.defineProperty
-var o = {};
-Object.defineProperty(o, 'gimmeFive', {
- get: function() {
- return 5;
- }
-});
-console.log(o.gimmeFive); // 5
-</pre>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="spectable standard-table">
- <tbody>
- <tr>
- <th scope="col">Специфікація</th>
- <th scope="col">Статус</th>
- <th scope="col">Коментар</th>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.prototype.__defineGetter__', 'Object.prototype.__defineGetter__()')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td>Включено у (нормативний) додаток для додаткової legacy-функціональності ECMAScript для веб-переглядачів (зауважте, що специфікація кодифікує те, що вже реалізовано).</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.Object.defineGetter")}}</p>
-</div>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Object.prototype.__defineSetter__()")}}</li>
- <li>Оператор {{jsxref("Operators/get", "get")}}</li>
- <li>{{jsxref("Object.defineProperty()")}}</li>
- <li>{{jsxref("Object.prototype.__lookupGetter__()")}}</li>
- <li>{{jsxref("Object.prototype.__lookupSetter__()")}}</li>
- <li><a href="/uk/docs/Web/JavaScript/Guide/Working_with_Objects#Defining_getters_and_setters">Посібник JS: Визначення гетерів та сетерів</a></li>
- <li><a href="https://whereswalden.com/2010/04/16/more-spidermonkey-changes-ancient-esoteric-very-rarely-used-syntax-for-creating-getters-and-setters-is-being-removed/">[Блог-стаття] Прибирання __defineGetter__ та __defineSetter__</a></li>
- <li>{{bug(647423)}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/__definesetter__/index.html b/files/uk/web/javascript/reference/global_objects/object/__definesetter__/index.html
deleted file mode 100644
index c8874d8a8a..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/__definesetter__/index.html
+++ /dev/null
@@ -1,116 +0,0 @@
----
-title: Object.prototype.__defineSetter__()
-slug: Web/JavaScript/Reference/Global_Objects/Object/__defineSetter__
-tags:
- - JavaScript
- - Об'єкт
- - застарілий
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/__defineSetter__
----
-<div>{{JSRef}}</div>
-
-<div class="warning">
-<p>Ця функціональність не рекомендована до використання на користь <a href="/uk/docs/Web/JavaScript/Reference/Operators/%D0%86%D0%BD%D1%96%D1%86%D1%96%D0%B0%D0%BB%D1%96%D0%B7%D0%B0%D1%86%D1%96%D1%8F_%D0%BE%D0%B1%E2%80%99%D1%94%D0%BA%D1%82%D1%96%D0%B2">синтаксису ініціалізації об'єктів</a> або API {{jsxref("Object.defineProperty()")}}.</p>
-
-<p>Однак, оскільки вона широко використовується у Всесвітній мережі, дуже малоймовірно, що веб-переглядачі припинять її підтримку<span class="tlid-translation translation" lang="es"><span title="">.</span></span></p>
-</div>
-
-<p>Метод <code><strong>__defineSetter__</strong></code>  прив'язує властивість об'єкта до функції, яка викликатиметься під час спроби присвоїти значення цієї властивості.</p>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><var>obj</var>.__defineSetter__(<var>prop</var>, <var>fun</var>)</pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>prop</code></dt>
- <dd>Рядок, що містить ім'я властивості, яка буде прив'язана до наданої функції.</dd>
- <dt><code>fun</code></dt>
- <dd>Функція, що викликатиметься при спробі присвоїти значення вказаної властивості. Ця функція має форму
- <pre class="brush: js">function(<var>val</var>) { . . . }</pre>
-
- <dl>
- <dt><code>val</code></dt>
- <dd>Псевдонім змінної, яка містить значення для присвоєння <code>prop</code>.</dd>
- </dl>
- </dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>{{jsxref("undefined")}}.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Метод <code>__defineSetter__</code> дозволяє визначення {{jsxref("Operators/set", "сетера", "", 1)}} на попередньо створеному об'єкті.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<pre class="brush: js">// <span class="tlid-translation translation" lang="es"><span title="">Нестандартний та не рекомендований спосіб</span></span>
-
-var o = {};
-o.__defineSetter__('value', function(val) { this.anotherValue = val; });
-o.value = 5;
-console.log(o.value); // undefined
-console.log(o.anotherValue); // 5
-
-
-// Стандартні способи
-
-// Використання оператора set
-var o = { set value(val) { this.anotherValue = val; } };
-o.value = 5;
-console.log(o.value); // undefined
-console.log(o.anotherValue); // 5
-
-// Використання Object.defineProperty
-var o = {};
-Object.defineProperty(o, 'value', {
- set: function(val) {
- this.anotherValue = val;
- }
-});
-o.value = 5;
-console.log(o.value); // undefined
-console.log(o.anotherValue); // 5
-</pre>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="spectable standard-table">
- <tbody>
- <tr>
- <th scope="col">Специфікація</th>
- <th scope="col">Статус</th>
- <th scope="col">Коментар</th>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.prototype.__defineSetter__', 'Object.prototype.__defineSetter__()')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td>Включено у (нормативний) додаток для додаткової legacy-функціональності ECMAScript для веб-переглядачів (зауважте, що специфікація кодифікує те, що вже реалізовано).</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div>
-<div class="hidden">La tabla de compatibilidad en esta página es generada a partir de datos estructurados. <span class="tlid-translation translation" lang="es"><span title="">Si desea contribuir a los datos, consulte</span></span> <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> y envíenos una solicitud de extracción.</div>
-
-<p>{{Compat("javascript.builtins.Object.defineSetter")}}</p>
-</div>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Object.prototype.__defineGetter__()")}}</li>
- <li>Оператор {{jsxref("Operators/set", "set")}}</li>
- <li>{{jsxref("Object.defineProperty()")}}</li>
- <li>{{jsxref("Object.prototype.__lookupGetter__()")}}</li>
- <li>{{jsxref("Object.prototype.__lookupSetter__()")}}</li>
- <li><a href="/en-US/docs/Web/JavaScript/Guide/Working_with_Objects#Defining_getters_and_setters">Посибник JavaScript: Визначення гетерів та сетерів</a></li>
- <li><a href="http://whereswalden.com/2010/04/16/more-spidermonkey-changes-ancient-esoteric-very-rarely-used-syntax-for-creating-getters-and-setters-is-being-removed/">[Блог-стаття] Прибирання __defineGetter__ та __defineSetter__</a></li>
- <li>{{bug(647423)}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/__lookupgetter__/index.html b/files/uk/web/javascript/reference/global_objects/object/__lookupgetter__/index.html
deleted file mode 100644
index d801ac6354..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/__lookupgetter__/index.html
+++ /dev/null
@@ -1,89 +0,0 @@
----
-title: Object.prototype.__lookupGetter__()
-slug: Web/JavaScript/Reference/Global_Objects/Object/__lookupGetter__
-tags:
- - JavaScript
- - Об'єкт
- - застарілий
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/__lookupGetter__
----
-<div>{{JSRef}} {{deprecated_header}}</div>
-
-<p>Метод <code><strong>__lookupGetter__</strong></code> повертає функцію, прив'язану в якості гетера вказаної властивості.</p>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><code><var>obj</var>.__lookupGetter__(<var>sprop</var>)</code></pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>sprop</code></dt>
- <dd>Рядок, що містить ім'я властивості, гетер якої має бути повернений.</dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>Функція, прив'язана в якості гетера до вказаної властивості.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Якщо для властивості об'єкта був визначений гетер, неможливо отримати посилання на нього через цю властивість, оскільки властивість посилається на значення, яке повертає ця функція. Методом <code>__lookupGetter__</code> можна отримати посилання на функцію-гетер.</p>
-
-<p>Зараз це стало можливо робити стандартизованими засобами, через {{jsxref("Object.getOwnPropertyDescriptor()")}} та {{jsxref("Object.getPrototypeOf()")}}.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<pre class="brush: js">var obj = {
- get foo() {
- return Math.random() &gt; 0.5 ? 'foo' : 'bar';
- }
-};
-
-
-// Нестандартний та не рекомендований спосіб
-obj.__lookupGetter__('foo');
-// (function() { return Math.random() &gt; 0.5 ? 'foo' : 'bar'; })
-
-
-// Стандартний спосіб
-Object.getOwnPropertyDescriptor(obj, "foo").get;
-// (function() { return Math.random() &gt; 0.5 ? 'foo' : 'bar'; })
-</pre>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="spectable standard-table">
- <tbody>
- <tr>
- <th scope="col">Специфікація</th>
- <th scope="col">Статус</th>
- <th scope="col">Коментар</th>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.prototype.__lookupGetter__', 'Object.prototype.__lookupGetter__()')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td>Включено у (нормативний) додаток для додаткової legacy-функціональності ECMAScript для веб-переглядачів (зауважте, що специфікація кодифікує те, що вже реалізовано).</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.Object.lookupGetter")}}</p>
-</div>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Object.prototype.__lookupSetter__()")}}</li>
- <li>Оператор {{jsxref("Functions/get", "get")}}</li>
- <li>{{jsxref("Object.getOwnPropertyDescriptor()")}} та {{jsxref("Object.getPrototypeOf()")}}</li>
- <li>{{jsxref("Object.prototype.__defineGetter__()")}}</li>
- <li>{{jsxref("Object.prototype.__defineSetter__()")}}</li>
- <li><a href="/uk/docs/Web/JavaScript/Guide/Working_with_Objects#Defining_getters_and_setters">Посібник JavaScript: Визначення гетерів та сетерів</a></li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/__lookupsetter__/index.html b/files/uk/web/javascript/reference/global_objects/object/__lookupsetter__/index.html
deleted file mode 100644
index c7ce0deb21..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/__lookupsetter__/index.html
+++ /dev/null
@@ -1,89 +0,0 @@
----
-title: Object.prototype.__lookupSetter__()
-slug: Web/JavaScript/Reference/Global_Objects/Object/__lookupSetter__
-tags:
- - JavaScript
- - Об'єкт
- - застарілий
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/__lookupSetter__
----
-<div>{{JSRef}} {{deprecated_header}}</div>
-
-<p>Метод <code><strong>__lookupSetter__</strong></code> повертає функцію, прив'язану в якості сетера вказаної властивості.</p>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><code><var>obj</var>.__lookupSetter__(<var>sprop</var>)</code></pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>sprop</code></dt>
- <dd>Рядок, що містить ім'я властивості, сетер якої має бути повернений.</dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>Функція, прив'язана в якості сетера до вказаної властивості.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Якщо для властивості об'єкта був визначений сетер, неможливо отримати посилання на функцію-сетер через цю властивість, оскільки властивість посилається на значення, яке повертає функція-гетер. Методом <code>__lookupSetter__</code> можна отримати посилання на функцію-сетер.</p>
-
-<p>Зараз це стало можливо робити стандартизованим засобом, через {{jsxref("Object.getOwnPropertyDescriptor()")}}.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<pre class="brush: js">var obj = {
- set foo(value) {
- this.bar = value;
- }
-};
-
-
-// Нестандартний та не рекомендований спосіб
-obj.__lookupSetter__('foo')
-// (function(value) { this.bar = value; })
-
-
-// Стандартний спосіб
-Object.getOwnPropertyDescriptor(obj, 'foo').set;
-// (function(value) { this.bar = value; })
-</pre>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="spectable standard-table">
- <tbody>
- <tr>
- <th scope="col">Специфікація</th>
- <th scope="col">Статус</th>
- <th scope="col">Коментар</th>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.prototype.__lookupSetter__', 'Object.prototype.__lookupSetter__()')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td>Включено у (нормативний) додаток для додаткової legacy-функціональності ECMAScript для веб-переглядачів (зауважте, що специфікація кодифікує те, що вже реалізовано).</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.Object.lookupSetter")}}</p>
-</div>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Object.prototype.__lookupGetter__()")}}</li>
- <li>Оператор {{jsxref("Functions/set", "set")}}</li>
- <li>{{jsxref("Object.getOwnPropertyDescriptor()")}} та {{jsxref("Object.getPrototypeOf()")}}</li>
- <li>{{jsxref("Object.prototype.__defineGetter__()")}}</li>
- <li>{{jsxref("Object.prototype.__defineSetter__()")}}</li>
- <li><a href="/en-US/docs/Web/JavaScript/Guide/Working_with_Objects#Defining_getters_and_setters">Посібник JavaScript: Визначення гетерів та сетерів</a></li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/assign/index.html b/files/uk/web/javascript/reference/global_objects/object/assign/index.html
deleted file mode 100644
index 3bbaac64b9..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/assign/index.html
+++ /dev/null
@@ -1,273 +0,0 @@
----
-title: Object.assign()
-slug: Web/JavaScript/Reference/Global_Objects/Object/assign
-tags:
- - ECMAScript 2015
- - JavaScript
- - Method
- - Object
- - Довідка
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/assign
----
-<div>{{JSRef}}</div>
-
-<p>Метод <strong><code>Object.assign()</code></strong> призначено для копіювання у цільовий об'єкт всіх особистих (не успадкованих) перелічуваних властивостей одного або декількох об'єктів. Метод повертає цільовий об'єкт.</p>
-
-<p>{{EmbedInteractiveExample("pages/js/object-assign.html")}}</p>
-
-<div class="hidden">
-<p>The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> and send us a pull request.</p>
-</div>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox notranslate">Object.assign(<var>target</var>, ...<var>sources</var>)</pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><em><code>target</code></em></dt>
- <dd>Цільовий об'єкт.</dd>
- <dt><em><code>sources</code></em></dt>
- <dd>Вхідні об'єкти (щонайменше один).</dd>
-</dl>
-
-<h3 id="Вертає">Вертає</h3>
-
-<p>Цільовий об'єкт.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Властивості цільового об'єкта будуть заміщені властивостями вхідних об'єктів, якщо вони мають той самий ключ. Пізніші властивості вхідних об'єктів схожим чином заміщують більш ранні.</p>
-
-<p>Метод <code>Object.assign()</code> копіює лише перелічувані та <em>особисті</em> властивості з кожного джерела у цільовий об'єкт. Він використовує <code>[[Get]]</code> на вхідних об'єктах та <code>[[Set]]</code> на цільовому об'єкті, а отже, здійснює виклики гетерів і сетерів. Таким чином, він <em>присвоює</em> властивості, а не просто копіює чи визначає нові властивості. Ця особливість може зробити метод непридатним для приєднання нових властивостей до прототипу, якщо вхідні джерела містять гетери.</p>
-
-<p>Для копіювання визначень властивостей разом з їх перелічуваністю у прототип натомість скористайтеся методами {{jsxref("Object.getOwnPropertyDescriptor()")}} та {{jsxref("Object.defineProperty()")}}.</p>
-
-<p>Копіюються властивості обох типів: як {{jsxref("String","рядкові")}}, так і {{jsxref("Symbol","символьні")}}.</p>
-
-<p>В разі помилки, наприклад, якщо властивість є недоступною для запису, викидається помилка {{jsxref("TypeError")}}, а об'єкт <code>target</code> може бути змінений, якщо будь-які властивості були додані до викидання помилки.</p>
-
-<div class="blockIndicator note">
-<p><strong>Заувага:</strong> <code>Object.assign()</code> не викидає помилок, якщо серед джерел є значення {{jsxref("null")}} чи {{jsxref("undefined")}}.</p>
-</div>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="Клонування_обєкта">Клонування об'єкта</h3>
-
-<pre class="brush: js notranslate">const obj = { a: 1 };
-const copy = Object.assign({}, obj);
-console.log(copy); // { a: 1 }
-</pre>
-
-<h3 id="Deep_Clone" name="Deep_Clone">Заувага щодо створення глибокої копії</h3>
-
-<p>Для створення глибокої копії необхідно скористатись альтернативними методами, тому що метод <code>Object.assign()</code> копіює значення властивостей. Якщо значенням джерела буде посилання на об'єкт, метод скопіює лише значення посилання.</p>
-
-<pre class="brush: js notranslate">function test() {
- 'use strict';
-
- let obj1 = { a: 0 , b: { c: 0}};
- let obj2 = Object.assign({}, obj1);
- console.log(JSON.stringify(obj2)); // { a: 0, b: { c: 0}}
-
- obj1.a = 1;
- console.log(JSON.stringify(obj1)); // { a: 1, b: { c: 0}}
- console.log(JSON.stringify(obj2)); // { a: 0, b: { c: 0}}
-
- obj2.a = 2;
- console.log(JSON.stringify(obj1)); // { a: 1, b: { c: 0}}
- console.log(JSON.stringify(obj2)); // { a: 2, b: { c: 0}}
-
- obj2.b.c = 3;
- console.log(JSON.stringify(obj1)); // { a: 1, b: { c: 3}}
- console.log(JSON.stringify(obj2)); // { a: 2, b: { c: 3}}
-
- // Глибока копія
- obj1 = { a: 0 , b: { c: 0}};
- let obj3 = JSON.parse(JSON.stringify(obj1));
- obj1.a = 4;
- obj1.b.c = 4;
- console.log(JSON.stringify(obj3)); // { a: 0, b: { c: 0}}
-}
-
-test();</pre>
-
-<h3 id="Злиття_обєктів">Злиття об'єктів</h3>
-
-<pre class="brush: js notranslate">const o1 = { a: 1 };
-const o2 = { b: 2 };
-const o3 = { c: 3 };
-
-const obj = Object.assign(o1, o2, o3);
-
-console.log(obj); // { a: 1, b: 2, c: 3 }
-console.log(o1); // { a: 1, b: 2, c: 3 }, змінено сам цільовий об'єкт</pre>
-
-<h3 id="Злиття_обєктів_з_однаковими_властивостями">Злиття об'єктів з однаковими властивостями</h3>
-
-<pre class="brush: js notranslate">const o1 = { a: 1, b: 1, c: 1 };
-const o2 = { b: 2, c: 2 };
-const o3 = { c: 3 };
-
-const obj = Object.assign({}, o1, o2, o3);
-console.log(obj); // { a: 1, b: 2, c: 3 }</pre>
-
-<p>Властивості перезаписуються однойменними властивостями інших об'єктів, що стоять далі в списку параметрів.</p>
-
-<h3 id="Копіювання_символьних_властивостей">Копіювання символьних властивостей</h3>
-
-<pre class="brush: js notranslate">const o1 = { a: 1 };
-const o2 = { [Symbol('foo')]: 2 };
-
-const obj = Object.assign({}, o1, o2);
-console.log(obj); // { a : 1, [Symbol("foo")]: 2 }
-Object.getOwnPropertySymbols(obj); // [Symbol(foo)]
-</pre>
-
-<h3 id="Властивості_з_ланцюжка_прототипів_та_неперелічувані_властивості_скопіювати_не_можна">Властивості з ланцюжка прототипів та неперелічувані властивості скопіювати не можна</h3>
-
-<pre class="brush: js notranslate">const obj = Object.create({ foo: 1 }, { // властивість foo належить до ланцюжка прототипів об'єкта obj
- bar: {
- value: 2 // bar є неперелічуваною властивістю
- },
- baz: {
- value: 3,
- enumerable: true // baz є перелічуваною особистою властивістю
- }
-});
-
-const copy = Object.assign({}, obj);
-console.log(copy); // { baz: 3 }
-</pre>
-
-<h3 id="Прості_величини_буде_загорнуто_у_обєкти">Прості величини буде загорнуто у об'єкти</h3>
-
-<pre class="brush: js notranslate">const v1 = 'абв';
-const v2 = true;
-const v3 = 10;
-const v4 = Symbol('foo');
-
-const obj = Object.assign({}, v1, null, v2, undefined, v3, v4);
-// Прості величини будуть загорнуті, null та undefined ігноруються.
-// Зауважте, лише рядкові обгортки можуть мати особисті неперелічувані властивості.
-console.log(obj); // { "0": "а", "1": "б", "2": "в" }
-</pre>
-
-<h3 id="Винятки_переривають_процес_копіювання">Винятки переривають процес копіювання</h3>
-
-<pre class="brush: js notranslate">const target = Object.defineProperty({}, 'foo', {
- value: 1,
- writable: false
-}); // Властивість target.foo доступна лише для читання
-
-Object.assign(target, { bar: 2 }, { foo2: 3, foo: 3, foo3: 3 }, { baz: 4 });
-// TypeError: "foo" is read-only
-// Викидається виняток під час присвоювання target.foo
-
-console.log(target.bar); // 2, перше джерело було успішно скопійовано
-console.log(target.foo2); // 3, першу властивість другого джерела було успішно скопійовано
-console.log(target.foo); // 1, тут трапилась помилка
-console.log(target.foo3); // undefined, метод assign завершився, властивість foo3 не буде скопійована
-console.log(target.baz); // undefined, третє джерело також не буде скопійоване
-</pre>
-
-<h3 id="Копіювання_аксесорів">Копіювання аксесорів</h3>
-
-<pre class="brush: js notranslate">const obj = {
- foo: 1,
- get bar() {
- return 2;
- }
-};
-
-let copy = Object.assign({}, obj);
-console.log(copy);
-// { foo: 1, bar: 2 }, значенням copy.bar буде значення, що поверне геттер obj.bar
-
-// Ця функція присвоювання повністю скопіює дескриптори
-function completeAssign(target, ...sources) {
- sources.forEach(source =&gt; {
- let descriptors = Object.keys(source).reduce((descriptors, key) =&gt; {
- descriptors[key] = Object.getOwnPropertyDescriptor(source, key);
- return descriptors;
- }, {});
- // За замовчуванням, метод Object.assign копіює перелічувані властивості типу Symbol також
- Object.getOwnPropertySymbols(source).forEach(sym =&gt; {
- let descriptor = Object.getOwnPropertyDescriptor(source, sym);
- if (descriptor.enumerable) {
- descriptors[sym] = descriptor;
- }
- });
- Object.defineProperties(target, descriptors);
- });
- return target;
-}
-
-var copy = completeAssign({}, obj);
-console.log(copy);
-// { foo:1, get bar() { return 2 } }
-</pre>
-
-<h2 id="Запасний_варіант_поліфіл">Запасний варіант (поліфіл)</h2>
-
-<p>Наведений {{Glossary("Polyfill", "поліфіл")}} не підтримує символьних властивостей, позаяк ES5 не має такого типу:</p>
-
-<pre class="brush: js notranslate">if (typeof Object.assign != 'function') {
- // Має бути writable: true, enumerable: false, configurable: true
- Object.defineProperty(Object, "assign", {
-    value: function assign(target, varArgs) { // .length функції дорівнює 2
-      'use strict';
- if (target == null || target === undefined) {
- throw new TypeError('Cannot convert undefined or null to object');
- }
-
- var to = Object(target);
-
- for (var index = 1; index &lt; arguments.length; index++) {
- var nextSource = arguments[index];
-
- if (nextSource != null &amp;&amp; nextSource !== undefined) {
- for (var nextKey in nextSource) {
- // Запобігає помилок, коли hasOwnProperty заміщено
- if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
- to[nextKey] = nextSource[nextKey];
- }
- }
- }
- }
- return to;
- },
-    writable: true,
-    configurable: true
-  });
- }
-</pre>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <th scope="col">Специфікація</th>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.assign', 'Object.assign')}}</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div class="hidden">Таблиця сумісності на цій сторінці створена зі структурованих даних. Якщо ви хочете долучитися до розробки цих даних, пропонуйте нам свої pull request до репозиторію <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div>
-
-<p>{{Compat("javascript.builtins.Object.assign")}}</p>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Object.defineProperties()")}}</li>
- <li><a href="/uk/docs/Web/JavaScript/Enumerability_and_ownership_of_properties">Перелічуваність та належність властивостей</a></li>
- <li><a href="/uk/docs/Web/JavaScript/Reference/Operators/Spread_syntax#Spread_in_object_literals">Розклад у об'єктних літералах</a></li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/constructor/index.html b/files/uk/web/javascript/reference/global_objects/object/constructor/index.html
deleted file mode 100644
index ef2362cdec..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/constructor/index.html
+++ /dev/null
@@ -1,237 +0,0 @@
----
-title: Object.prototype.constructor
-slug: Web/JavaScript/Reference/Global_Objects/Object/constructor
-tags:
- - JavaScript
- - Object
- - Властивість
- - прототип
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/constructor
----
-<div>{{JSRef}}</div>
-
-<p>Повертає посилання на функцію-конструктор {{jsxref("Object", "об'єкта")}}, що створила екземпляр об'єкта. Зауважте, що значення цієї властивості є посиланням на саму функцію, а не рядком, що містить ім'я функції. Значення, доступне лише для читання, мають лише примітивні значення, як то <code>1</code>, <code>true</code> або <code>"test"</code>.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Усі об'єкти (за виключенням об'єктів, створених через <code>Object.create(null)</code>) матимуть властивість <code>constructor</code>. Об'єкти, створені без явного використання функції-конструктора (тобто, об'єктними та масивними літералами), матимуть властивість <code>constructor</code>, що вказує на конструктор фундаментального об'єкта для цього об'єкта.</p>
-
-<pre class="brush: js">var o = {};
-o.constructor === Object; // true
-
-var o = new Object;
-o.constructor === Object; // true
-
-var a = [];
-a.constructor === Array; // true
-
-var a = new Array;
-a.constructor === Array; // true
-
-var n = new Number(3);
-n.constructor === Number; // true</pre>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="Відображення_конструктора_об'єкта">Відображення конструктора об'єкта</h3>
-
-<p>Наступний приклад створює конструктор <code>Tree</code> та об'єкт цього типу, <code>theTree</code>. Далі приклад демонструє властивість <code>constructor</code> об'єкта <code>theTree</code>.</p>
-
-<pre class="brush: js">function Tree(name) {
- this.name = name;
-}
-
-var theTree = new Tree('Redwood');
-console.log('theTree.constructor дорівнює ' + theTree.constructor);
-</pre>
-
-<p>Цей приклад виведе наступний результат:</p>
-
-<pre class="brush: js">theTree.constructor дорівнює function Tree(name) {
- this.name = name;
-}
-</pre>
-
-<h3 id="Зміна_конструктора_об'єкта">Зміна конструктора об'єкта</h3>
-
-<p>Наступний приклад покаже як можна змінити конструктор загальних об'єктів. Тільки <code>true</code>, <code>1</code> та <code>"test"</code> не зміняться, оскілки їхні конструктори доступні лише для читання. Цей приклад демонструє, що не завжди безпечно покладатися на властивість об'єкта <code>constructor</code>.</p>
-
-<pre class="brush:js">function Type () {}
-
-var types = [
- new Array(),
- [],
- new Boolean(),
- true, // лишається незмінним
- new Date(),
- new Error(),
- new Function(),
- function () {},
- Math,
- new Number(),
- 1, // лишається незмінним
- new Object(),
- {},
- new RegExp(),
- /(?:)/,
- new String(),
- 'test' // лишається незмінним
-];
-
-for (var i = 0; i &lt; types.length; i++) {
- types[i].constructor = Type;
- types[i] = [types[i].constructor, types[i] instanceof Type, types[i].toString()];
-}
-
-console.log(types.join('\n'));
-</pre>
-
-<p>Цей приклад виведе наступний результат (коментарі додані для довідки):</p>
-
-<pre class="brush: js">function Type() {},false, // new Array()
-function Type() {},false, // []
-function Type() {},false,false // new Boolean()
-function Boolean() {
- [native code]
-},false,true // true
-function Type() {},false,Mon Sep 01 2014 16:03:49 GMT+0600 // new Date()
-function Type() {},false,Error // new Error()
-function Type() {},false,function anonymous() {
-
-} // new Function()
-function Type() {},false,function () {} // function () {}
-function Type() {},false,[object Math] // Math
-function Type() {},false,0 // new Number()
-function Number() {
- [native code]
-},false,1 // 1
-function Type() {},false,[object Object] // new Object()
-function Type() {},false,[object Object] // {}
-function Type() {},false,/(?:)/ // new Regexp()
-function Type() {},false,/(?:)/ // /(?:)/
-function Type() {},false, // new String()
-function String() {
- [native code]
-},false,test</pre>
-
-<h3 id="Зміна_конструктора_функції">Зміна конструктора функції</h3>
-
-<p>Переважно ця властивість використовується для визначення функції як <strong>функції-конструктора</strong> з подальшим викликом її з оператором <strong>new</strong> та наслідуванням через ланцюжок прототипів.</p>
-
-<pre class="brush: js">function Parent() {}
-Parent.prototype.parentMethod = function parentMethod() {};
-
-function Child() {}
-Child.prototype = Object.create(Parent.prototype); // перевизначення дочірнього прототипу на прототип Parent
-
-Child.prototype.constructor = Child; // повернення початкового конструктора прототипу Child</pre>
-
-<p>Але коли нам потрібно виконувати цей останній рядок? Нажаль, відповідь - залежить від обставин.</p>
-
-<p>Спробуємо визначити випадки, коли переприсвоєння початкового конструктора зіграє важливу роль, а коли воно стане додатковим непотрібним рядком коду.</p>
-
-<p>Візьмемо наступний випадок: об'єкт має метод <strong>create</strong> для створення самого себе.</p>
-
-<pre class="brush: js">function Parent() {};
-function CreatedConstructor() {}
-
-CreatedConstructor.prototype = Object.create(Parent.prototype);
-
-CreatedConstructor.prototype.create = function create() {
- return new this.constructor();
-}
-
-new CreatedConstructor().create().create(); // TypeError undefined is not a function, оскільки constructor === Parent</pre>
-
-<p>У наведеному вище прикладі виняток виникне тому, що конструктор посилається на Parent.</p>
-
-<p>Щоб уникнути цього, просто призначте потрібний конструктор, який ви збираєтесь використовувати.</p>
-
-<pre class="brush: js">function Parent() {};
-function CreatedConstructor() {}
-
-CreatedConstructor.prototype = Object.create(Parent.prototype);
-CreatedConstructor.prototype.constructor = CreatedConstructor; // призначте конструктор, який будете використовувати
-
-CreatedConstructor.prototype.create = function create() {
- return new this.constructor();
-}
-
-new CreatedConstructor().create().create(); // так непогано</pre>
-
-<p>Гаразд, тепер зрозуміло, чому зміна конструктора може бути досить корисною.</p>
-
-<p>Розглянемо інший випадок.</p>
-
-<pre class="brush: js">function ParentWithStatic() {}
-
-ParentWithStatic.startPosition = { x: 0, y:0 };
-ParentWithStatic.getStartPosition = function getStartPosition() {
- return this.startPosition;
-}
-
-function Child(x, y) {
- this.position = {
- x: x,
- y: y
- };
-}
-
-Child.prototype = Object.create(ParentWithStatic.prototype);
-Child.prototype.constructor = Child;
-
-Child.prototype.getOffsetByInitialPosition = function getOffsetByInitialPosition() {
- var position = this.position;
- var startPosition = this.constructor.getStartPosition(); // error undefined is not a function, оскільки конструктор - Child
-
- return {
- offsetX: startPosition.x - position.x,
- offsetY: startPosition.y - position.y
- }
-};</pre>
-
-<p>В цьому прикладі нам треба залишити батьківський конструктор, щоб все працювало як слід.</p>
-
-<p><strong>Висновок</strong>: ручна зміна або встановлення конструктора може призвести до різноманітних та іноді заплутаних наслідків. Щоб запобігти цьому, визначте роль конструктора у кожному конкретному випадку. В більшості випадків конструктор не використовується, і в перепризначенні немає необхідності.</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('ESDraft', '#sec-object.prototype.constructor', 'Object.prototype.constructor')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-object.prototype.constructor', 'Object.prototype.constructor')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES5.1', '#sec-15.2.4.1', 'Object.prototype.constructor')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES1')}}</td>
- <td>{{Spec2('ES1')}}</td>
- <td>Початкове визначення. Реалізоване у JavaScript 1.1.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div class="hidden">
-<p>The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
-</div>
-
-<p>{{Compat("javascript.builtins.Object.constructor")}}</p>
-
-<div id="compat-mobile"></div>
diff --git a/files/uk/web/javascript/reference/global_objects/object/create/index.html b/files/uk/web/javascript/reference/global_objects/object/create/index.html
deleted file mode 100644
index 189aba3ebb..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/create/index.html
+++ /dev/null
@@ -1,406 +0,0 @@
----
-title: Object.create()
-slug: Web/JavaScript/Reference/Global_Objects/Object/create
-tags:
- - ECMAScript 5
- - JavaScript
- - 'Null'
- - Object
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/create
----
-<div>{{JSRef}}</div>
-
-<p>Метод <code><strong>Object.create()</strong></code> створює новий об'єкт, використовуючи існуючий об'єкт як прототип для новоствореного об'єкта.</p>
-
-<div>{{EmbedInteractiveExample("pages/js/object-create.html")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox">Object.create(<var>proto</var>, [<var>propertiesObject</var>])</pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code><var>proto</var></code></dt>
- <dd>Об'єкт, що має бути прототипом для новоствореного об'єкта.</dd>
- <dt><code><var>propertiesObject</var></code><var> </var>{{Optional_inline}}</dt>
- <dd>Якщо вказаний та не дорівнює {{jsxref("undefined")}}, об'єкт, чиї власні перелічувані властивості (тобто, властивості, визначені на самому об'єкті, а <em>не</em> перелічувані властивості, отримані через ланцюжок прототипів) визначають дескриптори властивостей, що мають бути додані до новоствореного об'єкта, з відповідними іменами властивостей. Ці властивості відповідають другому аргументу {{jsxref("Object.defineProperties()")}}.</dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>Новий об'єкт з зазначеним прототипом та властивостями.</p>
-
-<h3 id="Винятки">Винятки</h3>
-
-<p>Виняток {{jsxref("TypeError")}}, якщо параметр <code>propertiesObject</code> дорівнює {{jsxref("null")}} або це об'єкт, що не є обгорткою простого типу.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="Класичне_наслідування_через_Object.create">Класичне наслідування через <code>Object.create()</code></h3>
-
-<p>Нижче наведено приклад використання <code>Object.create()</code> для отримання класичного наслідування. Це приклад одиночного наслідування, єдиного, яке підтримує JavaScript.</p>
-
-<pre class="brush: js">// Shape - батьківський клас
-function Shape() {
- this.x = 0;
- this.y = 0;
-}
-
-// метод батьківського класу
-Shape.prototype.move = function(x, y) {
- this.x += x;
- this.y += y;
- console.info('Фігуру переміщено.');
-};
-
-// Rectangle - дочірній клас
-function Rectangle() {
- Shape.call(this); // виклик батьківського конструктора.
-}
-
-// дочірній клас розширює батьківській клас
-Rectangle.prototype = Object.create(Shape.prototype);
-
-//Якщо ви не призначите Object.prototype.constructor значення Rectangle,
-//він візьме prototype.constructor класу Shape (батьківського).
-//Щоб уникнути цього, ми призначаємо prototype.constructor значення Rectangle (дочірній).
-Rectangle.prototype.constructor = Rectangle;
-
-var rect = new Rectangle();
-
-console.log('Чи є rect екземпляром Rectangle?', rect instanceof Rectangle); // true
-console.log('Чи є rect екземпляром Shape?', rect instanceof Shape); // true
-rect.move(1, 1); // Виводить 'Фігуру переміщено.'
-</pre>
-
-<p>Якщо ви бажаєте успадкуватись від кількох об'єктів, можна використати домішки.</p>
-
-<pre class="brush: js">function MyClass() {
- SuperClass.call(this);
- OtherSuperClass.call(this);
-}
-
-// успадкувати від одного класу
-MyClass.prototype = Object.create(SuperClass.prototype);
-// змішати з іншим
-Object.assign(MyClass.prototype, OtherSuperClass.prototype);
-// перепризначити конструктор
-MyClass.prototype.constructor = MyClass;
-
-MyClass.prototype.myMethod = function() {
- // зробити щось
-};
-</pre>
-
-<p>Метод {{jsxref("Object.assign()")}} копіює властивості з прототипу OtherSuperClass у прототип MyClass, роблячи їх доступними для усіх екземплярів MyClass. <code>Object.assign()</code> був запроваджений у ES2015 і <a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Запасний_варіант_(поліфіл)">може бути відтворений поліфілом</a>. Якщо необхідна підтримка більш старих переглядачів, можна використати <code><a href="https://api.jquery.com/jQuery.extend/">jQuery.extend()</a></code> або <code><a href="https://lodash.com/docs/#assign">_.assign()</a></code>.</p>
-
-<h3 id="Використання_аргументу_propertiesObject_у_Object.create">Використання аргументу <code>propertiesObject</code> у <code>Object.create()</code></h3>
-
-<pre class="brush: js">var o;
-
-// створити об'єкт з прототипом null
-o = Object.create(null);
-
-
-o = {};
-// є еквівалентом:
-o = Object.create(Object.prototype);
-
-
-// У цьому прикладі ми створюємо об'єкт з парою
-// зразкових властивостей. (Зауважте, що другий параметр
-// встановлює ключі у відповідності до *дескрипторів властивості*.)
-o = Object.create(Object.prototype, {
- // foo - це звичайна властивість-значення
- foo: {
- writable: true,
- configurable: true,
- value: 'hello'
- },
- // bar - це властивість-аксесор (має гетер та сетер)
- bar: {
- configurable: false,
- get: function() { return 10; },
- set: function(value) {
- console.log('Призначення `o.bar` значення', value);
- }
-/* з аксесорами ES2015 наш код може виглядати так
- get() { return 10; },
- set(value) {
- console.log('Призначення `o.bar` значення', value);
- } */
- }
-});
-
-
-function Constructor() {}
-o = new Constructor();
-// є еквівалентом:
-o = Object.create(Constructor.prototype);
-// Звісно, якщо у функції Constructor присутній
-// код ініціалізації,
-// Object.create() не може його відобразити
-
-
-// Створити новий об'єкт, чиїм прототипом є новий, порожній
-// об'єкт, та додати єдину властивість 'p' зі значенням 42.
-o = Object.create({}, { p: { value: 42 } });
-
-// за замовчуванням властивості НЕДОСТУПНІ для запису,
-// переліку чи налаштування:
-o.p = 24;
-o.p;
-// 42
-
-o.q = 12;
-for (var prop in o) {
- console.log(prop);
-}
-// 'q'
-
-delete o.p;
-// false
-
-// щоб визначити властивість у ES3
-o2 = Object.create({}, {
- p: {
- value: 42,
- writable: true,
- enumerable: true,
- configurable: true
- }
-});
-/* є еквівалентом:
-o2 = Object.create({p: 42}) */
-
-</pre>
-
-<h2 id="Користувацькі_та_нульові_обєкти">Користувацькі та нульові об'єкти</h2>
-
-<p>Новий об'єкт, створений на основі користувацького об'єкта (особливо об'єкт, створений на основі об'єкта <code>null</code>, який по суті є користувацьким об'єктом, що НЕ МАЄ членів), може поводитись неочікувано. Особливо під час налагодження, оскільки звичайні функції утиліт для перетворення/видалення об'єктних властивостей можуть генерувати помилки або просто втрачати інформацію (особливо якщо використовують перехоплювачі помилок, що ігнорують помилки). Наприклад, ось два об'єкти:</p>
-
-<pre class="brush: js">oco = Object.create( {} ); // створити нормальний об'єкт
-ocn = Object.create( null ); // створити "нульовий" об'єкт
-
-&gt; console.log(oco) // {} -- Виглядає нормально
-&gt; console.log(ocn) // {} -- Поки що теж виглядає нормально
-
-oco.p = 1; // створити просту властивість на нормальному об'єкті
-ocn.p = 0; // створити просту властивість на "нульовому" об'єкті
-
-&gt; console.log(oco) // {p: 1} -- Досі виглядає нормально
-&gt; console.log(ocn) // {p: 0} -- Теж виглядає нормально. АЛЕ СТРИВАЙТЕ...
-</pre>
-
-<p><br>
- Як показано вище, поки що все виглядає нормальним. Однак, при спробі використати ці об'єкти, їхні відмінності швидко стають очевидними:</p>
-
-<pre class="brush: js">&gt; "oco is: " + oco // виводить "oco is: [object Object]"
-
-&gt; "ocn is: " + ocn // викидає помилку: Cannot convert object to primitive value
-</pre>
-
-<p>Перевірка лише декількох з багатьох базових вбудованих функцій більш чітко демонструє величину проблеми:</p>
-
-<pre class="brush: js">&gt; alert(oco) // виводить [object Object]
-&gt; alert(ocn) // викидає помилку: Cannot convert object to primitive value
-
-&gt; oco.toString() // виводить [object Object]
-&gt; ocn.toString() // викидає помилку: ocn.toString is not a function
-
-&gt; oco.valueOf() // виводить {}
-&gt; ocn.valueOf() // викидає помилку: ocn.valueOf is not a function
-
-&gt; oco.hasOwnProperty("p") // виводить "true"
-&gt; ocn.hasOwnProperty("p") // викидає помилку: ocn.hasOwnProperty is not a function
-
-&gt; oco.constructor // виводить "Object() { [native code] }"
-&gt; ocn.constructor // виводить "undefined"
-</pre>
-
-<p><br>
- Як вже сказано, ці відмінності можуть швидко зробити процес відлагодження навіть простих на вигляд проблем дуже заплутаним. Наприклад:</p>
-
-<p><em>Проста звичайна функція налагодження:</em></p>
-
-<pre class="brush: js">// вивести пари ключ-значення властивостей верхнього рівня наданого об'єкта
-function ShowProperties(obj){
- for(var prop in obj){
-  console.log(prop + ": " + obj[prop] + "\n" )
- }
-}</pre>
-
-<p><br>
- <em>Не такі прості результати: (особливо якщо перехоплювач помилок сховав повідомлення про помилки)</em></p>
-
-<pre class="brush: js">ob={}; ob.po=oco; ob.pn=ocn; // створити складний об'єкт з наданих вище тестових об'єктів в якості значень властивостей
-
-&gt; ShowProperties( ob ) // вивести властивості верхнього рівня
-- po: [object Object]
-- Error: Cannot convert object to primitive value
-
-Зауважте, що виводиться тільки перша властивість.
-</pre>
-
-<p><br>
- <em>(Але якщо такий самий об'єкт був просто створений в іншому порядку -- принаймні, в деяких реалізаціях...)</em></p>
-
-<pre class="brush: js">ob={}; ob.pn=ocn; ob.po=oco; // створити знову такий самий об'єкт, але створити ті самі властивості в іншому порядку
-
-&gt; ShowProperties( ob ) // вивести властивості верхнього рівня
-- Error: Cannot convert object to primitive value
-
-Зауважте, що жодна властивість не виводиться.</pre>
-
-<p>Зауважте, що такий відмінний порядок може виникнути статично, через відмінний зафіксований код, як ось тут, а може й динамічно, через порядок, в якому виконуються під час запуску гілки коду з додаванням властивостей, що залежить від вхідних даних та/або випадкових змінних. Знову ж таки, реальний порядок перебору не гарантований, в якому б порядку не додавалися члени об'єкта.</p>
-
-<h4 id="Деякі_рішення_що_не_працюють">Деякі рішення, що не працюють</h4>
-
-<p>Гарне вирішення проблеми відсутніх об'єктних методів не завжди є очевидним.</p>
-
-<p>Пряме додавання відсутнього об'єктного метода зі стандартного об'єкта НЕ працює:</p>
-
-<pre class="brush: js">ocn = Object.create( null ); // створити "нульовий" об'єкт (такий самий, як і раніше)
-
-ocn.toString = Object.toString; // оскільки йому бракує методу, призначити його прямо зі стандартного об'єкта
-
-<span style="letter-spacing: -0.00333rem;">&gt; ocn.toString // виводить "toString() { [native code] }" -- схоже, що відсутній метод тепер додано</span>
-&gt; ocn.toString == Object.toString // виводить "true" -- схоже, це той самий метод, що й у стандартному об'єкті
-
-&gt; ocn.toString() // error: Function.prototype.toString requires that 'this' be a Function
-</pre>
-
-<p><br>
- Пряме додавання відсутнього об'єктного метода у "прототип" нового об'єкта також не працює, оскільки у нового об'єкта немає справжнього прототипа (що й є справжньою причиною УСІХ цих проблем), і його не можна додати <strong>прямо</strong>:</p>
-
-<pre class="brush: js">ocn = Object.create( null ); // створити "нульовий" об'єкт (такий самий, як і раніше)
-
-ocn.prototype.toString = Object.toString; // Error: Cannot set property 'toString' of undefined
-
-ocn.prototype = {}; // спробувати створити прототип
-ocn.prototype.toString = Object.toString; // оскільки об'єкту бракує методу, призначити його прямо зі стандартного об'єкта<span style="letter-spacing: -0.00333rem;">
-
-&gt; ocn.toString() // error: ocn.toString is not a function</span>
-</pre>
-
-<p><br>
- Додавання відсутнього об'єктного метода використанням стандартного об'єкта в якості прототипа нового об'єкта також не працює:</p>
-
-<pre class="brush: js">ocn = Object.create( null ); // створити "нульовий" об'єкт (такий самий, як і раніше)
-Object.setPrototypeOf(ocn, Object); // встановити значенням прототипу нового об'єкта стандартний об'єкт
-
-&gt; ocn.toString() // error: Function.prototype.toString requires that 'this' be a Function
-</pre>
-
-<h4 id="Деякі_вдалі_рішення">Деякі вдалі рішення</h4>
-
-<p>Як вже сказано, пряме додавання відсутнього об'єктного методу зі <strong>стандартного об'єкта </strong>НЕ працює. Однак, пряме додавання <strong>загального</strong> метода ПРАЦЮЄ:</p>
-
-<pre class="brush: js">ocn = Object.create( null ); // створити "нульовий" об'єкт (такий самий, як і раніше)
-
-ocn.toString = toString; // оскільки об'єкту бракує методу, призначити його прямо з загальної версії
-
-&gt; ocn.toString() // виводить "[object Object]"
-&gt; "ocn is: " + ocn // виводить "ocn is: [object Object]"
-
-
-ob={}; ob.pn=ocn; ob.po=oco; // створити складний об'єкт (такий самий, як і раніше)
-
-&gt; ShowProperties(ob) // вивести властивості верхнього рівня
-- po: [object Object]
-- pn: [object Object]
-</pre>
-
-<p>Однак, встановлення загального <strong>прототипу</strong> прототипом нового об'єкта працює навіть краще:</p>
-
-<pre class="brush: js">ocn = Object.create( null ); // створити "нульовий" об'єкт (такий самий, як і раніше)
-Object.setPrototypeOf(ocn, Object.prototype); // встановити значенням прототипу нового об'єкта "загальний" об'єкт (НЕ стандартний об'єкт)
-</pre>
-
-<p><em>(На додачу до функцій, пов'язаних з рядками, що наведені вище, це також додає:)</em></p>
-
-<pre class="brush: js">&gt; ocn.valueOf() // виводить {}
-&gt; ocn.hasOwnProperty("x") // виводить "false"
-&gt; ocn.constructor // виводить "Object() { [native code] }"
-
-// ...та вся решта властивостей та методів Object.prototype.
-</pre>
-
-<p>Як бачимо, об'єкти, змінені таким чином, тепер виглядають дуже схожими на звичайні об'єкти.</p>
-
-<h2 id="Поліфіл">Поліфіл</h2>
-
-<p>Цей поліфіл покриває основний сценарій використання, а саме, створення нового об'єкта, для якого був обраний прототип, але не бере до уваги другий аргумент.</p>
-
-<p>Зауважте, що в той час як використання <code>null</code> в якості <code>[[Prototype]]</code> підтримується в реальному методі ES5 <code>Object.create</code>, цей поліфіл не може це підтримувати через обмеження, притаманне версіям ECMAScript нижче 5.</p>
-
-<pre class="brush: js"> if (typeof Object.create !== "function") {
- Object.create = function (proto, propertiesObject) {
- if (typeof proto !== 'object' &amp;&amp; typeof proto !== 'function') {
- throw new TypeError("Прототипом об'єкта може бути тільки об'єкт: " + proto);
- } else if (proto === null) {
- throw new Error("Реалізація Object.create у цьому браузері є шимом та не підтримує 'null' в якості першого аргументу.");
- }
-
- if (typeof propertiesObject != 'undefined') {
- throw new Error("Реалізація Object.create у цьому браузері є шимом та не підтримує другий аргумент.");
- }
-
- function F() {}
- F.prototype = proto;
-
- return new F();
- };
-}
-</pre>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Специфікація</th>
- <th scope="col">Статус</th>
- <th scope="col">Коментар</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ES5.1', '#sec-15.2.3.5', 'Object.create')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td>Початкове визначення. Реалізоване у JavaScript 1.8.5.</td>
- </tr>
- <tr>
- <td>{{SpecName('ES2015', '#sec-object.create', 'Object.create')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.create', 'Object.create')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.Object.create")}}</p>
-</div>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Object.defineProperty()")}}</li>
- <li>{{jsxref("Object.defineProperties()")}}</li>
- <li>{{jsxref("Object.prototype.isPrototypeOf()")}}</li>
- <li>{{jsxref("Reflect.construct()")}}</li>
- <li>John Resig's post on <a href="http://ejohn.org/blog/objectgetprototypeof/">getPrototypeOf()</a></li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/defineproperties/index.html b/files/uk/web/javascript/reference/global_objects/object/defineproperties/index.html
deleted file mode 100644
index 342fea9106..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/defineproperties/index.html
+++ /dev/null
@@ -1,198 +0,0 @@
----
-title: Object.defineProperties()
-slug: Web/JavaScript/Reference/Global_Objects/Object/defineProperties
-tags:
- - ECMAScript 5
- - JavaScript
- - Object
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/defineProperties
----
-<div>{{JSRef}}</div>
-
-<p>Метод <code><strong>Object.defineProperties()</strong></code> визначає нові або модифікує існуючі властивості прямо на об'єкті, вертаючи цей об'єкт.</p>
-
-<div>{{EmbedInteractiveExample("pages/js/object-defineproperties.html")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><code>Object.defineProperties(<var>obj</var>, <var>props</var>)</code></pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code><var>obj</var></code></dt>
- <dd>Об'єкт, на якому визначаються чи модифікуються властивості.</dd>
- <dt><code><var>props</var></code></dt>
- <dd>Об'єкт, чиї ключі відображають імена властивостей, які треба визначити чи модифікувати, і чиї значення є об'єктами, що описують ці властивості. Кожне значення у <code>props</code> має бути або дескриптором даних, або дескриптором доступу; воно не може бути обома (детальніше читайте у {{jsxref("Object.defineProperty()")}}).</dd>
- <dd>Дескриптори даних та дескриптори доступу можуть мати наступні необов'язкові ключі:</dd>
- <dd>
- <dl>
- <dt><code>configurable</code></dt>
- <dd>Дорівнює <code>true</code> тоді й тільки тоді, коли тип цього дескриптора властивості може бути змінений, і якщо властивість може бути видалена з відповідного об'єкта.<br>
- <strong>За замовчуванням <code>false</code>.</strong></dd>
- <dt><code>enumerable</code></dt>
- <dd>Дорівнює <code>true</code> тоді й тільки тоді, коли ця властивість відображається під час переліку властивостей відповідного об'єкта.<br>
- <strong>За замовчуванням <code>false</code>.</strong></dd>
- </dl>
-
- <p>Дескриптор даних також має наступні необов'язкові ключі:</p>
-
- <dl>
- <dt><code>value</code></dt>
- <dd>Значення, пов'язане з властивістю. Може бути будь-яким з чинних значень JavaScript (числом, об'єктом, функцією і т.д.).<br>
- <strong>За замовчуванням {{jsxref("undefined")}}.</strong></dd>
- <dt><code>writable</code></dt>
- <dd>Дорівнює <code>true</code> тоді й тільки тоді, коли значення, пов'язане з властивістю, може бути змінене {{jsxref("Operators/Оператори_присвоєння", "оператором присвоєння", "", 1)}}.<br>
- <strong>За замовчуванням <code>false</code>.</strong></dd>
- </dl>
-
- <p>Дескриптор доступу також має наступні необов'язкові ключі:</p>
-
- <dl>
- <dt><code>get</code></dt>
- <dd>Функція, що виступає властивістю-гетером, або {{jsxref("undefined")}}, якщо гетера немає. Значення, що повертає функція, буде використане як значення властивості.<br>
- <strong>За замовчуванням {{jsxref("undefined")}}.</strong></dd>
- <dt><code>set</code></dt>
- <dd>Функція, що виступає властивістю-сетером, або {{jsxref("undefined")}}, якщо сетера немає. Функція буде отримувати єдиним аргументом нове значення, що призначається властивості.<br>
- <strong>За замовчуванням {{jsxref("undefined")}}.</strong></dd>
- </dl>
-
- <p>Якщо в дескриптора немає жодного з ключів <code>value</code>, <code>writable</code>, <code>get</code> або <code>set</code>, він сприймається як дескриптор даних. Якщо дескриптор має і <code>value</code> або <code>writable</code>, і <code>get</code> або <code>set</code>, викидається виняток.</p>
- </dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>Об'єкт, переданий у функцію.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Метод <code>Object.defineProperties</code>, по суті, визначає всі властивості у відповідності до власних перелічуваних властивостей <code>props</code> на об'єкті <code>obj</code>.</p>
-
-<h2 id="Приклад">Приклад</h2>
-
-<pre class="brush: js">var obj = {};
-Object.defineProperties(obj, {
- 'property1': {
- value: true,
- writable: true
- },
- 'property2': {
- value: 'Привіт',
- writable: false
- }
- // і т.д., і т.п.
-});
-</pre>
-
-<h2 id="Поліфіл">Поліфіл</h2>
-
-<p>За умови незміненого середовища виконання, де всі імена та властивості посилаються на свої первинні значення, метод <code>Object.defineProperties</code> є майже повністю еквівалентним (зауважте коментар у <code>isCallable</code>) наступній реімплементації у JavaScript:</p>
-
-<pre class="brush: js;highlight:[8]">function defineProperties(obj, properties) {
- function convertToDescriptor(desc) {
- function hasProperty(obj, prop) {
- return Object.prototype.hasOwnProperty.call(obj, prop);
- }
-
- function isCallable(v) {
- // Увага: відредагуйте за необхідності, якщо інші значення, крім функцій, доступні для виклику.
- return typeof v === 'function';
- }
-
- if (typeof desc !== 'object' || desc === null)
- throw new TypeError('bad desc');
-
- var d = {};
-
- if (hasProperty(desc, 'enumerable'))
- d.enumerable = !!desc.enumerable;
- if (hasProperty(desc, 'configurable'))
- d.configurable = !!desc.configurable;
- if (hasProperty(desc, 'value'))
- d.value = desc.value;
- if (hasProperty(desc, 'writable'))
- d.writable = !!desc.writable;
- if (hasProperty(desc, 'get')) {
- var g = desc.get;
-
- if (!isCallable(g) &amp;&amp; typeof g !== 'undefined')
- throw new TypeError('bad get');
- d.get = g;
- }
- if (hasProperty(desc, 'set')) {
- var s = desc.set;
- if (!isCallable(s) &amp;&amp; typeof s !== 'undefined')
- throw new TypeError('bad set');
- d.set = s;
- }
-
- if (('get' in d || 'set' in d) &amp;&amp; ('value' in d || 'writable' in d))
- throw new TypeError('identity-confused descriptor');
-
- return d;
- }
-
- if (typeof obj !== 'object' || obj === null)
- throw new TypeError('bad obj');
-
- properties = Object(properties);
-
- var keys = Object.keys(properties);
- var descs = [];
-
- for (var i = 0; i &lt; keys.length; i++)
- descs.push([keys[i], convertToDescriptor(properties[keys[i]])]);
-
- for (var i = 0; i &lt; descs.length; i++)
- Object.defineProperty(obj, descs[i][0], descs[i][1]);
-
- return obj;
-}
-</pre>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Специфікація</th>
- <th scope="col">Статус</th>
- <th scope="col">Коментар</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.defineproperties', 'Object.defineProperties')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-object.defineproperties', 'Object.defineProperties')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES5.1', '#sec-15.2.3.7', 'Object.defineProperties')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td>Початкове визначення. Реалізоване у JavaScript 1.8.5</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-
-
-<p>{{Compat("javascript.builtins.Object.defineProperties")}}</p>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Object.defineProperty()")}}</li>
- <li>{{jsxref("Object.keys()")}}</li>
- <li><a href="/uk/docs/Web/JavaScript/Перелічуваність_та_належність_властивостей">Перелічуваність та належність властивостей</a></li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/defineproperty/index.html b/files/uk/web/javascript/reference/global_objects/object/defineproperty/index.html
deleted file mode 100644
index 6e6907e958..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/defineproperty/index.html
+++ /dev/null
@@ -1,501 +0,0 @@
----
-title: Object.defineProperty()
-slug: Web/JavaScript/Reference/Global_Objects/Object/defineProperty
-tags:
- - ECMAScript 5
- - JavaScript
- - Об'єкт
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/defineProperty
----
-<div>{{JSRef}}</div>
-
-<p>Статичний метод <code><strong>Object.defineProperty()</strong></code> визначає нову властивість безпосередньо на об'єкті, або модифікує існуючу властивість на об'єкті, та повертає об'єкт.</p>
-
-<div class="blockIndicator note">
-<p><strong>Заувага:</strong> Цей метод викликається прямо на конструкторі {{jsxref("Object")}}, а не на екземплярі типу <code>Object</code>.</p>
-</div>
-
-<p>{{EmbedInteractiveExample("pages/js/object-defineproperty.html")}}</p>
-
-<div class="hidden">
-<p>The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> and send us a pull request.</p>
-</div>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><code>Object.defineProperty(<var>obj</var>, <var>prop</var>, <var>descriptor</var>)</code></pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>obj</code></dt>
- <dd>Об'єкт, на якому визначається властивість.</dd>
- <dt><code>prop</code></dt>
- <dd>Ім'я або {{jsxref("Symbol", "символ")}} властивості для визначення чи модифікації.</dd>
- <dt><code>descriptor</code></dt>
- <dd>Дескриптор для властивості, що модифікується чи визначається.</dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>Об'єкт, що був переданий у функцію.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Цей метод дозволяє точно додавати чи модифікувати властивість об'єкту. Звичайне додавання властивості через призначення створює властивості, які з'являються під час переліку властивостей (цикл {{jsxref("Statements/for...in", "for...in")}} або метод {{jsxref("Object.keys")}}), чиї значення можуть бути змінені та можуть бути {{jsxref("Operators/delete", "видалені", "", 1)}}. Даний метод дозволяє змінити ці додаткові деталі у стані за замовчуванням. За замовчуванням, значення, додані за допомогою <code>Object.defineProperty()</code>, є незмінними.</p>
-
-<p>Дескриптори властивостей у об'єктах бувають двох основних видів: дескриптори даних та дескриптори доступу. <em>Дескриптор даних</em> - це властивість, що має значення, яке може бути або не бути доступне для запису. <em>Дескриптор доступу</em> -<dfn> це властивість, описана парою функцій </dfn>гетер-сетер. Дескриптор має бути одного з двох видів, і не може належати до обох.</p>
-
-<p>І дескриптори даних, і дескриптори доступу є об'єктами. Вони мають наступні необов'язкові ключі (Значення за замовчуванням у випадку визначення властивостей через Object.defineProperty()):</p>
-
-<dl>
- <dt><code>configurable</code></dt>
- <dd>Дорівнює <code>true</code> тоді й тільки тоді, коли тип цього дескриптора властивості може бути змінений, та якщо властивість може бути видалена з відповідного об'єкту.<br>
- <strong>За замовчуванням <code>false</code>.</strong></dd>
- <dt><code>enumerable</code></dt>
- <dd>Дорівнює <code>true</code> тоді й тільки тоді, коли ця властивість з'являється під час переліку властивостей на відповідному об'єкті..<br>
- <strong>За замовчуванням <code>false</code>.</strong></dd>
-</dl>
-
-<p>Дескриптор даних також має наступні необов'язкові ключі:</p>
-
-<dl>
- <dt><code>value</code></dt>
- <dd>Значення, пов'язане з властивістю. Може бути будь-яким з чинних значень JavaScript (числом, об'єктом, функцією і т. д.).<br>
- <strong>За замовчуванням {{jsxref("undefined")}}.</strong></dd>
- <dt><code>writable</code></dt>
- <dd>Дорівнює <code>true</code> тоді й тільки тоді, коли значення, пов'язане з властивістю, може бути змінене за допомогою {{jsxref("Operators/Assignment_Operators", "оператора присвоєння", "", 1)}}.<br>
- <strong>За замовчуванням <code>false</code>.</strong></dd>
-</dl>
-
-<p>Дескриптор доступу також має наступні необов'язкові ключі:</p>
-
-<dl>
- <dt><code>get</code></dt>
- <dd>Функція, що служить гетером властивості, або {{jsxref("undefined")}}, якщо гетера немає. Коли відбувається звернення до властивості, ця функція викликається без аргументів, а <code>this</code> присвоюється об'єкт, через який відбулось звернення до властивості (це може бути не той об'єкт, на якому властивість була визначена, через наслідування).<br>
- <strong>За замовчуванням {{jsxref("undefined")}}.</strong></dd>
- <dt><code>set</code></dt>
- <dd>Функція, що служить сетером властивості, або {{jsxref("undefined")}}, якщо сетера немає. Коли властивості присвоюється значення, функція викликається з одним аргументом (значення, яке присвоюється), а <code>this</code> присвоюється об'єкт, через який відбувається присвоєння.<br>
- <strong>За замовчуванням {{jsxref("undefined")}}.</strong></dd>
-</dl>
-
-<p>Якщо в дескриптора немає жодного з ключів <code>value</code>, <code>writable</code>, <code>get</code> або <code>set</code>, він сприймається як дескриптор даних. Якщо дескриптор має і <code>value</code> або <code>writable</code>, і <code>get</code> або <code>set</code>, викидається виняток.</p>
-
-<p>Майте на увазі, що ці атрибути не обов'язково є особистими властивостями дескриптора. Успадковані властивості також будуть враховуватись. Щоб впевнитись, що значення за замовчуванням збережуться, ви можете заморозити {{jsxref("Object.prototype")}} заздалегідь, явно вказуючи всі опції, або вказати {{jsxref("null")}} через {{jsxref("Object.create", "Object.create(null)")}}.</p>
-
-<pre class="brush: js">// використовуючи __proto__
-var obj = {};
-var descriptor = Object.create(null); // немає успадкованих властивостей
-// за замовчуванням недоступний для запису, переліку та налаштування
-descriptor.value = 'static';
-Object.defineProperty(obj, 'key', descriptor);
-
-// явно задані ключі
-Object.defineProperty(obj, 'key', {
- enumerable: false,
- configurable: false,
- writable: false,
- value: 'static'
-});
-
-// перероблення того самого об'єкта
-function withValue(value) {
- var d = withValue.d || (
- withValue.d = {
- enumerable: false,
- writable: false,
- configurable: false,
- value: null
- }
- );
-
- // уникаємо дублювання операції присвоєння значення
- if (d.value !== value) d.value = value;
-
- return d;
-}
-// ... і ...
-Object.defineProperty(obj, 'key', withValue('static'));
-
-// якщо замороження доступне, воно запобігає додаванню або
-// видаленню властивостей прототипу об'єкта
-// (value, get, set, enumerable, writable, configurable)
-(Object.freeze || Object)(Object.prototype);</pre>
-
-<h2 id="Приклади">Приклади</h2>
-
-<p>Якщо хочете дізнатись, як використовувати метод <code>Object.defineProperty</code> з двійковими прапорами, дивіться <a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty/Additional_examples">додаткові приклади</a>.</p>
-
-<h3 id="Створення_властивості">Створення властивості</h3>
-
-<p>Коли зазначеної властивості в об'єкті не існує, <code>Object.defineProperty()</code> створює нову властивість за описом. Поля можуть бути пропущені у дескрипторі, тоді для цих полів будуть задані значення за замовчуванням.</p>
-
-<pre class="brush: js">var o = {}; // Створює новий об'єкт
-
-// Приклад властивості об'єкта, доданої
-// за допомогою defineProperty з дескриптором даних
-Object.defineProperty(o, 'a', {
- value: 37,
- writable: true,
- enumerable: true,
- configurable: true
-});
-// Властивість 'а' існує в об'єкті o, її значення дорівнює 37
-
-// Приклад властивості об'єкта, доданої
-// за допомогою defineProperty з дескриптором доступу
-var bValue = 38;
-Object.defineProperty(o, 'b', {
- get: function() { return bValue; },
- set: function(newValue) { bValue = newValue; },
- enumerable: true,
- configurable: true
-});
-o.b; // 38
-// Властивість 'b' існує в об'єкті o, її значення дорівнює 38
-// Значення o.b тепер завжди ідентичне bValue,
-// якщо o.b не була перевизначена
-
-// Не можна змішувати обидва типи
-Object.defineProperty(o, 'conflict', {
- value: 0x9f91102,
- get: function() { return 0xdeadbeef; }
-});
-// викидає TypeError: value існує
-// тільки в дескрипторах даних,
-// get існує тільки в дескрипторах доступу</pre>
-
-<h3 id="Модифікація_властивості">Модифікація властивості</h3>
-
-<p>Коли властивість вже існує, <code>Object.defineProperty()</code> намагається модифікувати властивість згідно значень у дескрипторі та поточної конфігурації об'єкта. Якщо атрибут <code>configurable</code> старого дескриптора дорівнював <code>false</code>, властивість вважається недоступною для налаштування. Неможливо змінити жоден атрибут властивості-аксесора, недоступної для налаштування. Для властивості-значення можливо змінити значення, якщо властивість доступна для запису, також можливо змінити атрибут <code>writable</code> з <code>true</code> на <code>false</code>. Неможливо переключатись між типами властивостей, коли властивість недоступна для налаштування.</p>
-
-<p>Помилка {{jsxref("TypeError")}} викидається при спробах змінити атрибути властивості, недоступної для налаштування (окрім <code>value</code> та <code>writable</code>, якщо їх дозволено змінювати), крім випадку, коли поточне та нове значення однакові.</p>
-
-<h4 id="Атрибут_writable">Атрибут writable</h4>
-
-<p>Коли атрибут властивості <code>writable</code> встановлений у <code>false</code>, властивість вважається недоступною для запису. Їй не можна переприсвоїти значення.</p>
-
-<pre class="brush: js">var o = {}; // Створює новий об'єкт
-
-Object.defineProperty(o, 'a', {
- value: 37,
- writable: false
-});
-
-console.log(o.a); // виводить 37
-o.a = 25; // Помилка не викидається
-// (Викидалась би у строгому режимі,
-// навіть якщо значеня таке саме)
-console.log(o.a); // виводить 37. Присвоєння не спрацювало.
-
-// строгий режим
-(function() {
- 'use strict';
- var o = {};
- Object.defineProperty(o, 'b', {
- value: 2,
- writable: false
- });
- o.b = 3; // викидає TypeError: "b" доступна лише для читання
- return o.b; // без попереднього рядка вертає 2
-}());</pre>
-
-<p class="brush: js">Як видно з прикладу, спроби запису у властивість, недоступну для запису, не змінюють її, але й не викидають помилки.</p>
-
-<h4 id="Атрибут_enumerable">Атрибут enumerable</h4>
-
-<p>Атрибут властивості <code>enumerable</code> визначає, чи буде властивість підхоплена методом {{jsxref("Object.assign()")}} або оператором <a href="/uk/docs/Web/JavaScript/Reference/Operators/Spread_syntax">розкладу</a>. Для не {{jsxref("Symbols", "символьних")}} властивостей він також визначає, чи буде властивість з'являтись у циклі {{jsxref("Statements/for...in", "for...in")}} та у {{jsxref("Object.keys()")}}, чи ні.</p>
-
-<pre class="brush: js">var o = {};
-Object.defineProperty(o, 'a', {
- value: 1,
- enumerable: true
-});
-Object.defineProperty(o, 'b', {
- value: 2,
- enumerable: false
-});
-Object.defineProperty(o, 'c', {
- value: 3
-}); // enumerable за замовчуванням дорівнює false
-o.d = 4; // enumerable за замовчуванням дорівнює true,
- // якщо властивість створюється через присвоєння
-Object.defineProperty(o, Symbol.for('e'), {
- value: 5,
- enumerable: true
-});
-Object.defineProperty(o, Symbol.for('f'), {
- value: 6,
- enumerable: false
-});
-
-for (var i in o) {
- console.log(i);
-}
-// виводить 'a' та 'd' (у невизначеному порядку)
-
-Object.keys(o); // ['a', 'd']
-
-o.propertyIsEnumerable('a'); // true
-o.propertyIsEnumerable('b'); // false
-o.propertyIsEnumerable('c'); // false
-o.propertyIsEnumerable('d'); // true
-o.propertyIsEnumerable(Symbol.for('e')); // true
-o.propertyIsEnumerable(Symbol.for('f')); // false
-
-var p = { ...o }
-p.a // 1
-p.b // undefined
-p.c // undefined
-p.d // 4
-p[Symbol.for('e')] // 5
-p[Symbol.for('f')] // undefined</pre>
-
-<h4 id="Атрибут_configurable">Атрибут configurable</h4>
-
-<p>Атрибут <code>configurable</code> контролює одночасно, чи може властивість бути видалена з об'єкту, та чи можуть її атрибути (інші, крім <code>value</code> та <code>writable</code>) бути змінені.</p>
-
-<pre class="brush: js">var o = {};
-Object.defineProperty(o, 'a', {
- get() { return 1; },
- configurable: false
-});
-
-Object.defineProperty(o, 'a', {
- configurable: true
-}); // викидає TypeError
-Object.defineProperty(o, 'a', {
- enumerable: true
-}); // викидає TypeError
-Object.defineProperty(o, 'a', {
- set() {}
-}); // викидає TypeError (set не був визначений попередньо)
-Object.defineProperty(o, 'a', {
- get() { return 1; }
-}); // викидає TypeError
-// (хоча новий get робить рівно те саме)
-Object.defineProperty(o, 'a', {
- value: 12
-}); // викидає TypeError
-// ('value' можна змінити, коли 'configurable' дорівнює false,
-// але не у цьому випадку, через аксесор 'get')
-
-console.log(o.a); // виводить 1
-delete o.a; // Нічого не відбувається
-console.log(o.a); // виводить 1</pre>
-
-<p>Якби атрибут <code>configurable</code> властивості <code>o.a</code> дорівнював <code>true</code>, жодна з помилок не з'явилася б, і властивість була б видалена наприкінці.</p>
-
-<h3 id="Додавання_властивостей_та_значень_за_замовчуванням">Додавання властивостей та значень за замовчуванням</h3>
-
-<p>Важливо враховувати, яким чином задаються значення атрибутів за замовчуванням. Часто є різниця між простим присвоєнням значення через крапкову нотацію та використанням <code>Object.defineProperty()</code>, як показано нижче у прикладі.</p>
-
-<pre class="brush: js">var o = {};
-
-o.a = 1;
-// є еквівалентом:
-Object.defineProperty(o, 'a', {
- value: 1,
- writable: true,
- configurable: true,
- enumerable: true
-});
-
-// З іншого боку,
-Object.defineProperty(o, 'a', { value: 1 });
-// є еквівалентом:
-Object.defineProperty(o, 'a', {
- value: 1,
- writable: false,
- configurable: false,
- enumerable: false
-});
-</pre>
-
-<h3 id="Користувацьки_сетери_та_гетери">Користувацьки сетери та гетери</h3>
-
-<p>Приклад нижче показує, як реалізувати об'єкт, що самоархівується. Коли призначається властивість <code>temperature</code>, масив <code>archive</code> отримує запис журналу подій.</p>
-
-<pre class="brush: js">function Archiver() {
- var temperature = null;
- var archive = [];
-
- Object.defineProperty(this, 'temperature', {
- get: function() {
- console.log('get!');
- return temperature;
- },
- set: function(value) {
- temperature = value;
- archive.push({ val: temperature });
- }
- });
-
- this.getArchive = function() { return archive; };
-}
-
-var arc = new Archiver();
-arc.temperature; // 'get!'
-arc.temperature = 11;
-arc.temperature = 13;
-arc.getArchive(); // [{ val: 11 }, { val: 13 }]
-</pre>
-
-<p>У цьому прикладі гетер завжди повертає одне й те саме значення.</p>
-
-<pre class="brush: js">var pattern = {
- get() {
- return 'Що б ти не призначив, ' +
- 'я завжди повертаю цей рядок';
- },
- set() {
- this.myname = "Це рядок з моїм ім'ям";
- }
-};
-
-function TestDefineSetAndGet() {
- Object.defineProperty(this, 'myproperty', pattern);
-}
-
-var instance = new TestDefineSetAndGet();
-instance.myproperty = 'тест';
-console.log(instance.myproperty);
-// Що б ти не призначив, я завжди повертаю цей рядок
-
-console.log(instance.myname); // Це рядок з моїм ім'ям</pre>
-
-<h3 id="Успадкування_властивостей">Успадкування властивостей</h3>
-
-<p>Якщо властивість-аксесор була успадкована, її методи <code>get</code> та <code>set</code> викликатимуться при зверненні до властивості та будуть модифіковані на об'єктах-нащадках. Якщо ці методи використовують змінну для зберігання значення, це значення буде спільним для усіх об'єктів.</p>
-
-<pre class="brush: js">function myclass() {
-}
-
-var value;
-Object.defineProperty(myclass.prototype, "x", {
- get() {
- return value;
- },
- set(x) {
- value = x;
- }
-});
-
-var a = new myclass();
-var b = new myclass();
-a.x = 1;
-console.log(b.x); // 1</pre>
-
-<p>Це можна виправити, зберігаючи значення у іншій властивості. У методах <code>get</code> та <code>set</code> <code>this</code> вказує на об'єкт, що використовується для звернення або для модифікації властивості.</p>
-
-<pre class="brush: js">function myclass() {
-}
-
-Object.defineProperty(myclass.prototype, "x", {
- get() {
- return this.stored_x;
- },
- set(x) {
- this.stored_x = x;
- }
-});
-
-var a = new myclass();
-var b = new myclass();
-a.x = 1;
-console.log(b.x); // undefined</pre>
-
-<p>На відміну від властивостей-аксесорів, властивості-значення завжди присвоюються самому об'єкту, а не прототипу. Проте, якщо успадковується властивість-значення, недоступна для запису, це все одно не дозволяє змінювати властивість на об'єкті.</p>
-
-<pre class="brush: js">function myclass() {
-}
-
-myclass.prototype.x = 1;
-Object.defineProperty(myclass.prototype, "y", {
- writable: false,
- value: 1
-});
-
-var a = new myclass();
-a.x = 2;
-console.log(a.x); // 2
-console.log(myclass.prototype.x); // 1
-a.y = 2; // Ігнорується, викидає виняток у строгому режимі
-console.log(a.y); // 1
-console.log(myclass.prototype.y); // 1</pre>
-
-<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('ES5.1', '#sec-15.2.3.6', 'Object.defineProperty')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td>Початкове визначення. Реалізоване у JavaScript 1.8.5.</td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-object.defineproperty', 'Object.defineProperty')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.defineproperty', 'Object.defineProperty')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div class="hidden">
-<p>The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
-</div>
-
-<p>{{Compat("javascript.builtins.Object.defineProperty")}}</p>
-
-<h2 id="Примітки_щодо_сумісності">Примітки щодо сумісності</h2>
-
-<h3 id="Перевизначення_властивості_length_обєкта_Array">Перевизначення властивості <code>length</code> об'єкта <code>Array</code></h3>
-
-<p>Можливість перевизначити властивість масивів {{jsxref("Array.length", "length")}} є предметом звичайних обмежень. (Властивість {{jsxref("Array.length", "length")}} початково недоступна для налаштування та переліку, і доступна для запису. Таким чином, для незміненого масиву можливо змінити значення властивості {{jsxref("Array.length", "length")}} або зробити її недоступною для запису. Неможливо змінити її доступність для переліку чи налаштування, або, якщо вона недоступна для запису, змінити її значення чи доступність для запису.) Однак, не усі переглядачі дозволяють це перевизначення.</p>
-
-<p>Firefox від 4 до 22 викине {{jsxref("TypeError")}} на всяку спробу будь-яким чином (дозволено це чи ні) перевизначити властивість масиву {{jsxref("Array.length", "length")}}.</p>
-
-<p>Версії Chrome, у яких реалізовано <code>Object.defineProperty()</code>, у певних обставинах ігнорують значення довжини масиву, відмінне від поточного значення властивості масиву {{jsxref("Array.length", "length")}}. У деяких обставинах зміна доступності для запису, схоже, непомітно не спрацьовує (і не викидає виняток). Разом з тим, деякі методи, що змінюють масив, такі як {{jsxref("Array.prototype.push")}}, не визнають недоступну для запису довжину масиву.</p>
-
-<p>Версії Safari, у яких реалізовано <code>Object.defineProperty()</code>, ігнорують значення <code>length</code>, яке відрізняється від поточної властивості масиву {{jsxref("Array.length", "length")}}, і спроби змінити її доступність для запису не викидають помилки, але насправді не змінюють доступність властивості для запису.</p>
-
-<p>Лише Internet Explorer 9 та новіші, а також Firefox 23 та новіші, схоже, повністю та коректно реалізують перевизначення властивості масивів {{jsxref("Array.length", "length")}}. На сьогоднішній день не варто покладатись на те, що перевизначення властивості масиву {{jsxref("Array.length", "length")}} працюватиме чи поводитиметься певним чином. І навіть коли ви <em>можете</em> на це покластись, <a href="http://whereswalden.com/2013/08/05/new-in-firefox-23-the-length-property-of-an-array-can-be-made-non-writable-but-you-shouldnt-do-it/">існує дуже вагома причина не робити цього</a>.</p>
-
-<h3 id="Примітки_щодо_Internet_Explorer_8">Примітки щодо Internet Explorer 8</h3>
-
-<p>Internet Explorer 8 реалізував метод <code>Object.defineProperty()</code>, який може використовуватись <a class="external" href="https://msdn.microsoft.com/en-us/library/dd229916%28VS.85%29.aspx">тільки на об'єктах DOM</a>. Кілька моментів варто зазначити:</p>
-
-<ul>
- <li>Спроби використати <code>Object.defineProperty()</code> на вбудованих об'єктах викине помилку.</li>
- <li>Атрибутам властивості мають бути надані певні значення. Атрибути <code>configurable</code>, <code>enumerable</code> та <code>writable</code> мають усі дорівнювати <code>true</code> для дескриптора даних, а також <code>true</code> для <code>configurable</code>, <code>false</code> для <code>enumerable</code> для дескриптора доступу.(?) Будь-яка спроба задати інше значення (?) призведе до викидання помилки.</li>
- <li>Переналаштування властивості вимагає спочатку видалення цієї властивості. Якщо властивість не була видалена, вона залишиться такою, як була до спроби переналаштування.</li>
-</ul>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li><a href="/uk/docs/Web/JavaScript/Перелічуваність_та_належність_властивостей">Перелічуваність та належність властивостей</a></li>
- <li>{{jsxref("Object.defineProperties()")}}</li>
- <li>{{jsxref("Object.propertyIsEnumerable()")}}</li>
- <li>{{jsxref("Object.getOwnPropertyDescriptor()")}}</li>
- <li>{{jsxref("Object.prototype.watch()")}}</li>
- <li>{{jsxref("Object.prototype.unwatch()")}}</li>
- <li>{{jsxref("Operators/get", "get")}}</li>
- <li>{{jsxref("Operators/set", "set")}}</li>
- <li>{{jsxref("Object.create()")}}</li>
- <li><a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty/Additional_examples">Додаткові приклади <code>Object.defineProperty</code></a></li>
- <li>{{jsxref("Reflect.defineProperty()")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/entries/index.html b/files/uk/web/javascript/reference/global_objects/object/entries/index.html
deleted file mode 100644
index 8b555e8991..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/entries/index.html
+++ /dev/null
@@ -1,157 +0,0 @@
----
-title: Object.entries()
-slug: Web/JavaScript/Reference/Global_Objects/Object/entries
-tags:
- - JavaScript
- - Властивість
- - Об'єкт
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/entries
----
-<div>{{JSRef}}</div>
-
-<div><span class="seoSummary">Метод <code><strong>Object.entries()</strong></code> повертає масив пар ключ-значення особистих, перелічуваних, рядкових властивостей наданого об'єкта, у тому самому порядку, у якому їх надає цикл {{jsxref("Statements/for...in", "for...in")}} (різниця лише в тому, що цикл for-in також перебирає </span><span style="font-size: 1rem; letter-spacing: -0.00278rem;"><span class="seoSummary">властивості з ланцюга прототипів).</span> Порядок масиву, поверненого </span><strong style="font-size: 1rem; letter-spacing: -0.00278rem;">Object.entries()</strong><span style="font-size: 1rem; letter-spacing: -0.00278rem;">, не залежить від того, як був визначений об'єкт</span>. Якщо вам потрібне певне впорядкування, то масив слід відсортувати наступним чином: <code>Object.entries(obj).sort((a, b) =&gt; b[0].localeCompare(a[0]));</code>.</div>
-
-<div></div>
-
-<div>{{EmbedInteractiveExample("pages/js/object-entries.html")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox">Object.entries(<var>obj</var>)</pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>obj</code></dt>
- <dd>Об'єкт, чиї пари ключ-значення особистих перелічуваних рядкових властивостей потрібно повернути.</dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<div>Масив пар <code>[key, value]</code> з особистих, перелічуваних, рядкових властивостей даного об'єкта.</div>
-
-<h2 id="Опис">Опис</h2>
-
-<p><code>Object.entries()</code> повертає масив, чиїми елементами є масиви, що відповідають парам  <code>[key, value]</code> перелічуваних рядкових властивостей, знайдених безпосередньо на об'єкті. Порядок властивостей є таким самим, як і при переборі властивостей об'єкта вручну за допомогою циклу.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<pre class="brush: js">const obj = { foo: 'bar', baz: 42 };
-console.log(Object.entries(obj)); // [ ['foo', 'bar'], ['baz', 42] ]
-
-// подібний до масиву об'єкт
-const obj = { 0: 'а', 1: 'б', 2: 'в' };
-console.log(Object.entries(obj)); // [ ['0', 'а'], ['1', 'б'], ['2', 'в'] ]
-
-// подібний до масиву об'єкт з випадковим порядком ключів
-const anObj = { 100: 'а', 2: 'б', 7: 'в' };
-console.log(Object.entries(anObj)); // [ ['2', 'б'], ['7', 'в'], ['100', 'а'] ]
-
-// getFoo є неперелічуваною властивістю
-const myObj = Object.create({}, { getFoo: { value() { return this.foo; } } });
-myObj.foo = 'bar';
-console.log(Object.entries(myObj)); // [ ['foo', 'bar'] ]
-
-// аргумент, що не є об'єктом, буде приведений до об'єкта
-console.log(Object.entries('foo')); // [ ['0', 'f'], ['1', 'o'], ['2', 'o'] ]
-
-// повертає порожній масив для усіх простих типів, оскільки примітиви не мають особистих властивостей
-console.log(Object.entries(100)); // [ ]
-
-// елегантно перебирає пари ключ-значення
-const obj = { a: 5, b: 7, c: 9 };
-for (const [key, value] of Object.entries(obj)) {
- console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
-}
-
-// або, використовуючи додаткові функції масивів
-Object.entries(obj).forEach(([key, value]) =&gt; {
- console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
-});
-</pre>
-
-<h3 id="Перетворення_Object_на_Map">Перетворення <code>Object</code> на <code>Map</code></h3>
-
-<p>Конструктор {{jsxref("Map", "new Map()")}} приймає ітерабельний об'єкт, отриманий через <code>entries</code>. За допомогою <code>Object.entries</code>, ви легко можете перетворити {{jsxref("Object")}} на {{jsxref("Map")}}:</p>
-
-<pre class="brush: js">const obj = { foo: 'bar', baz: 42 };
-const map = new Map(Object.entries(obj));
-console.log(map); // Map { foo: "bar", baz: 42 }
-</pre>
-
-<h3 id="Перебір_обєкта">Перебір об'єкта</h3>
-
-<p>Використовуючи <a href="/uk/docs/Web/JavaScript/Reference/Operators/Деструктуризація#Деструктуризація_масивів">деструктуризацію масивів</a>, ви можете легко перебирати об'єкти.</p>
-
-<pre class="brush: js">const obj = { foo: 'bar', baz: 42 };
-Object.entries(obj).forEach(([key, value]) =&gt; console.log(`${key}: ${value}`)); // "foo: bar", "baz: 42"
-</pre>
-
-<h2 id="Поліфіл">Поліфіл</h2>
-
-<p>Щоб додати підтримку методу <code>Object.entries</code> у старих середовищах, що не підтримують його початково, ви можете використати <span class="tlid-translation translation" lang="uk"><span title="">демонстраційну реалізацію </span></span><code>Object.entries</code><span class="tlid-translation translation" lang="uk"><span title=""> у</span></span> <a href="https://github.com/tc39/proposal-object-values-entries">tc39/proposal-object-values-entries</a> <span class="tlid-translation translation" lang="uk"><span title="">(якщо вам не потрібна підтримка </span></span>IE<span class="tlid-translation translation" lang="uk"><span title="">), поліфіл у репозиторіях</span></span> <a href="https://github.com/es-shims/Object.entries">es-shims/Object.entries</a>, або можете просто скористатись простим, готовим до розгортання поліфілом, наведеним нижче.</p>
-
-<pre class="brush: js">if (!Object.entries) {
-  Object.entries = function( obj ){
- var ownProps = Object.keys( obj ),
-  i = ownProps.length,
- resArray = new Array(i); // попередньо виділити пам'ять під масив
-  while (i--)
-  resArray[i] = [ownProps[i], obj[ownProps[i]]];
-
-  return resArray;
- };
-}
-</pre>
-
-<p>Для наведеного вище поліфілу, якщо вам потрібна підтримка IE &lt; 9, тоді вам також знадобиться поліфіл Object.keys (як той, що наведений у статті {{jsxref("Object.keys")}})</p>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Специфікація</th>
- <th scope="col">Статус</th>
- <th scope="col">Коментар</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.entries', 'Object.entries')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td>Початкове визначення.</td>
- </tr>
- <tr>
- <td>{{SpecName('ES8', '#sec-object.entries', 'Object.entries')}}</td>
- <td>{{Spec2('ES8')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.Object.entries")}}</p>
-</div>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li><a href="/uk/docs/Web/JavaScript/Перелічуваність_та_належність_властивостей">Перелічуваність та належність властивостей</a></li>
- <li>{{jsxref("Object.keys()")}}</li>
- <li>{{jsxref("Object.values()")}}</li>
- <li>{{jsxref("Object.prototype.propertyIsEnumerable()")}}</li>
- <li>{{jsxref("Object.create()")}}</li>
- <li>{{jsxref("Object.fromEntries()")}}</li>
- <li>{{jsxref("Object.getOwnPropertyNames()")}}</li>
- <li>{{jsxref("Map.prototype.entries()")}}</li>
- <li>{{jsxref("Map.prototype.keys()")}}</li>
- <li>{{jsxref("Map.prototype.values()")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/freeze/index.html b/files/uk/web/javascript/reference/global_objects/object/freeze/index.html
deleted file mode 100644
index 86269bfda1..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/freeze/index.html
+++ /dev/null
@@ -1,256 +0,0 @@
----
-title: Object.freeze()
-slug: Web/JavaScript/Reference/Global_Objects/Object/freeze
-tags:
- - ECMAScript 5
- - JavaScript
- - Object
- - freeze
- - Об'єкт
- - заморожування
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/freeze
----
-<div>{{JSRef}}</div>
-
-<p>Метод <code><strong>Object.freeze()</strong></code> <strong>заморожує</strong> об'єкт. Заморожений об'єкт не може бути змінений; заморожування запобігає додаванню нових властивостей, видаленню існуючих властивостей, зміні доступності існуючих властивостей для переліку, налаштування та запису, а також зміні значень існуючих властивостей. Також, заморожування об'єкта не дає змінювати його прототип. Метод <code>freeze()</code> повертає той самий об'єкт, що був переданий.</p>
-
-<div>{{EmbedInteractiveExample("pages/js/object-freeze.html")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><code>Object.freeze(<var>obj</var>)</code></pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>obj</code></dt>
- <dd>Об'єкт, який потрібно заморозити.</dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>Об'єкт, переданий у функцію.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Ніщо не може бути додане чи видалене з набору властивостей замороженого об'єкта. Будь-яка спроба це зробити зазнає невдачі, або непомітно, або з викиданням винятку {{jsxref("TypeError")}} (найчастіше, але не винятково, у {{jsxref("Strict_mode", "строгому режимі", "", 1)}}).</p>
-
-<p>Для властивостей-значень замороженого об'єкта не можна змінювати значення, атрибутам writable та configurable встановлено значення false. Властивості-аксесори (гетери та сетери) працюють, як і раніше (і так само створюють ілюзію, що ви міняєте значення). Зауважте, що значення, які є об'єктами, можна змінювати, якщо тільки вони теж не заморожені. Масив, як об'єкт, може бути заморожений; після цього його елементи не можуть бути змінені, і жоден елемент не може бути доданий чи видалений з масиву.</p>
-
-<p><code>freeze()</code> повертає той самий об'єкт, який був переданий у функцію. Він <em>не створює</em> заморожену копію.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="Заморожування_обєктів">Заморожування об'єктів</h3>
-
-<pre class="brush: js">var obj = {
- prop: function() {},
- foo: 'ква'
-};
-
-// До заморожування: можна додавати нові властивості,
-// а також змінювати чи видаляти існуючі властивості
-obj.foo = 'мяв';
-obj.lumpy = 'гав';
-delete obj.prop;
-
-// Заморожуємо.
-var o = Object.freeze(obj);
-
-// Повертається той самий об'єкт, який ми передали.
-o === obj; // true
-
-// Об'єкт заморожено.
-Object.isFrozen(obj); // === true
-
-// Тепер будь-які зміни не працюють
-obj.foo = 'му'; // нічого не робить
-// непомітно не додає властивість
-obj.quaxxor = 'весела качка';
-
-// У строгому режимі такі спроби викинуть винятки TypeError
-function fail(){
- 'use strict';
- obj.foo = 'бум'; // викидає TypeError
- delete obj.foo; // викидає TypeError
- delete obj.quaxxor; // повертає true, бо атрибут 'quaxxor' не був доданий
- obj.sparky = 'фух'; // викидає TypeError
-}
-
-fail();
-
-// Спроба внести зміни через Object.defineProperty;
-// обидві інструкції викинуть TypeError.
-Object.defineProperty(obj, 'ohai', { value: 17 });
-Object.defineProperty(obj, 'foo', { value: 'уф' });
-
-// Також неможливо змінити прототип
-// обидві наведені інструкції викинуть TypeError.
-Object.setPrototypeOf(obj, { x: 20 })
-obj.__proto__ = { x: 20 }
-</pre>
-
-<h3 id="Заморожування_масивів">Заморожування масивів</h3>
-
-<pre class="brush: js">let a = [0];
-Object.freeze(a); // Тепер масив не можна змінювати.
-
-a[0]=1; // непомітно не спрацьовує
-a.push(2); // непомітно не спрацьовує
-
-// У строгому режимі такі спроби викидатимуть TypeError
-function fail() {
- "use strict"
- a[0] = 1;
- a.push(2);
-}
-
-fail();</pre>
-
-<p>Заморожений об'єкт є <em>незмінним</em>. Однак, він не обов'язково є <em>константою</em>. Наступний приклад демонструє, що заморожений об'єкт не є константою (неглибока заморозка).</p>
-
-<pre class="brush: js">obj1 = {
- internal: {}
-};
-
-Object.freeze(obj1);
-obj1.internal.a = 'значенняА';
-
-obj1.internal.a // 'значенняА'</pre>
-
-<p>Щоб об'єкт був константою, все дерево посилань (прямі та непрямі посилання на інші об'єкти) має посилатися тільки на незмінні заморожені об'єкти. Заморожений об'єкт називається незмінним, бо <em>стан </em>об'єкта (значення та посилання на інші об'єкти) всередині всього об'єкта є зафіксованим. Зауважте, що рядки, числа та булеві значення завжди незмінні, і що функції та масиви є об'єктами.</p>
-
-<h4 id="Що_таке_неглибока_заморозка">Що таке "неглибока заморозка"?</h4>
-
-<p>Результат виклику <code>Object.freeze(<var>object</var>)</code> стосується лише безпосередніх властивостей об'єкта <code>object</code>, і запобігає додаванню, видаленню чи переприсвоєнню значень властивостей у майбутньому <em>тільки</em> на об'єкті <code>object</code>. Якщо ж значеннями цих властивостей є інші об'єкти, ці об'єкти не заморожуються, і на них можуть здійснюватись операції додавання, видалення чи переприсвоєння значень властивостей.</p>
-
-<pre class="brush: js">var employee = {
- name: "Дмитро",
- designation: "Розробник",
- address: {
- street: "Городоцька",
- city: "Львів"
- }
-};
-
-Object.freeze(employee);
-
-employee.name = "Вова"; // непомітно не спрацює у нестрогому режимі
-employee.address.city = "Винники"; // атрибути дочірнього об'єкта можна змінювати
-
-console.log(employee.address.city) // Виведе: "Винники"
-</pre>
-
-<p>Щоб зробити об'єкт незмінним, рекурсивно заморозьте кожну властивість типу object (глибока заморозка). Застосовуйте свій шаблон для кожного конкретного елементу, коли знаєте, що об'єкт не містить {{interwiki("wikipedia", "Цикл_(теорія_графів)", "циклів")}} у дереві посилань, інакше запуститься нескінченний цикл. Покращенням функції <code>deepFreeze()</code> була б внутрішня функція, яка отримує аргументом шлях (наприклад, масив), щоб можна було заборонити рекурсивний виклик <code>deepFreeze()</code>, коли об'єкт знаходиться у процесі перетворення на незмінний об'єкт. Ви все одно ризикуєте заморозити об'єкт, який не треба заморожувати, наприклад, [window].</p>
-
-<pre class="brush: js">function deepFreeze(object) {
-
- // Отримати імена властивостей, визначених на об'єкті
- var propNames = Object.getOwnPropertyNames(object);
-
- // Заморозити властивості перед тим, як заморожувати себе
-
- for (let name of propNames) {
- let value = object[name];
-
- object[name] = value &amp;&amp; typeof value === "object" ?
- deepFreeze(value) : value;
- }
-
- return Object.freeze(object);
-}
-
-var obj2 = {
- internal: {
- a: null
- }
-};
-
-deepFreeze(obj2);
-
-obj2.internal.a = 'новеЗначення'; // непомітно не спрацює у нестрогому режимі
-obj2.internal.a; // null
-</pre>
-
-<h2 id="Примітки_щодо_використання">Примітки щодо використання</h2>
-
-<p>У ES5, якщо аргументом цього методу є не об'єкт (примітив), він спричинить помилку {{jsxref("TypeError")}}. У ES2015 аргумент, який не є об'єктом, сприйматиметься як звичайний заморожений об'єкт, і буде просто повернений.</p>
-
-<pre class="brush: js">&gt; Object.freeze(1)
-TypeError: 1 is not an object // код ES5
-
-&gt; Object.freeze(1)
-1 // код ES2015
-</pre>
-
-<p>Об'єкти {{domxref("ArrayBufferView")}} з елементами спричинять помилку {{jsxref("TypeError")}}, оскільки вони є представленнями ділянок пам'яті, і неодмінно спричинять інші можливі проблеми:</p>
-
-<pre class="brush: js">&gt; Object.freeze(new Uint8Array(0)) // Немає елементів
-Uint8Array []
-
-&gt; Object.freeze(new Uint8Array(1)) // Має елементи
-TypeError: Cannot freeze array buffer views with elements
-
-&gt; Object.freeze(new DataView(new ArrayBuffer(32))) // Немає елементів
-DataView {}
-
-&gt; Object.freeze(new Float64Array(new ArrayBuffer(64), 63, 0)) // Немає елементів
-Float64Array []
-
-&gt; Object.freeze(new Float64Array(new ArrayBuffer(64), 32, 2)) // Має елементи
-TypeError: Cannot freeze array buffer views with elements
-</pre>
-
-<p>Зауважте наступне; оскільки три стандартні властивості (<code>buf.byteLength</code>, <code>buf.byteOffset</code> та <code>buf.buffer</code>) є доступними лише для читання (так само, як у {{jsxref("ArrayBuffer")}} чи у {{jsxref("SharedArrayBuffer")}}), немає причини намагатися заморожувати ці властивості.</p>
-
-<h3 id="Порівняння_з_Object.seal">Порівняння з <code>Object.seal()</code></h3>
-
-<p>Об'єкти, запечатані через {{jsxref("Object.seal()")}}, дозволяють змінювати свої існуючі властивості. Властивості об'єктів, заморожених через <code>Object.freeze()</code>, стають незмінними.</p>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Специфікація</th>
- <th scope="col">Статус</th>
- <th scope="col">Коментар</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ES5.1', '#sec-15.2.3.9', 'Object.freeze')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td>Початкове визначення. Реалізоване у JavaScript 1.8.5.</td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-object.freeze', 'Object.freeze')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.freeze', 'Object.freeze')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-
-
-<p>{{Compat("javascript.builtins.Object.freeze")}}</p>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Object.isFrozen()")}}</li>
- <li>{{jsxref("Object.preventExtensions()")}}</li>
- <li>{{jsxref("Object.isExtensible()")}}</li>
- <li>{{jsxref("Object.seal()")}}</li>
- <li>{{jsxref("Object.isSealed()")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/fromentries/index.html b/files/uk/web/javascript/reference/global_objects/object/fromentries/index.html
deleted file mode 100644
index 28e960ca54..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/fromentries/index.html
+++ /dev/null
@@ -1,112 +0,0 @@
----
-title: Object.fromEntries()
-slug: Web/JavaScript/Reference/Global_Objects/Object/fromEntries
-tags:
- - JavaScript
- - Довідка
- - Об'єкт
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/fromEntries
----
-<div>{{JSRef}}</div>
-
-<p>Метод <code><strong>Object.fromEntries()</strong></code> перетворює список пар ключ-значення на об'єкт.</p>
-
-<div>{{EmbedInteractiveExample("pages/js/object-fromentries.html")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox">Object.fromEntries(<var>iterable</var>);</pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code><var>iterable</var></code></dt>
- <dd>Ітерабельний об'єкт, наприклад, {{jsxref("Array")}} або {{jsxref("Map")}}, або інші об'єкти, що реалізують <a href="/uk/docs/Web/JavaScript/Reference/Протоколи_перебору#Протокол_перебируваного">протокол перебируваного</a>.</dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>Новий об'єкт, чиї властивості надані записами ітерабельного об'єкта.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Метод <code>Object.fromEntries()</code> приймає список пар ключ-значення і повертає новий об'єкт, властивості якого надані цими записами. Аргумент <em>iterable</em> має бути об'єктом, що реалізує метод <code>@@iterator</code>, який повертає об'єкт ітератор, що утворює подібний до масиву об'єкт з двома елементами. Перший його елемент - це значення, що використовується в якості ключа властивості, а другий елемент - значення, що буде асоціюватися з цим ключем.</p>
-
-<p><code>Object.fromEntries()</code> виконує дію протилежну до {{jsxref("Object.entries()")}}.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="Перетворення_Map_на_Object">Перетворення <code>Map</code> на <code>Object</code></h3>
-
-<p>За допомогою <code>Object.fromEntries</code>, можна перетворити {{jsxref("Map")}} на {{jsxref("Object")}}:</p>
-
-<pre class="brush: js">const map = new Map([ ['foo', 'bar'], ['baz', 42] ]);
-const obj = Object.fromEntries(map);
-console.log(obj); // { foo: "bar", baz: 42 }
-</pre>
-
-<h3 id="Перетворення_Array_на_Object">Перетворення <code>Array</code> на <code>Object</code></h3>
-
-<p>За допомогою <code>Object.fromEntries</code> можна перетворити {{jsxref("Array")}} на {{jsxref("Object")}}:</p>
-
-<pre class="brush: js">const arr = [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ];
-const obj = Object.fromEntries(arr);
-console.log(obj); // { 0: "a", 1: "b", 2: "c" }
-</pre>
-
-<h3 id="Перетворення_обєкта">Перетворення об'єкта</h3>
-
-<p>За допомогою методу <code>Object.fromEntries</code>, його протилежності  {{jsxref("Object.entries()")}} та <a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/Array#Методи_2">методів маніпулювання масивами</a> можна ось так трансформувати об'єкти:</p>
-
-<pre class="brush: js">const object1 = { a: 1, b: 2, c: 3 };
-
-const object2 = Object.fromEntries(
- Object.entries(object1)
- .map(([ key, val ]) =&gt; [ key, val * 2 ])
-);
-
-console.log(object2);
-// { a: 2, b: 4, c: 6 }</pre>
-
-<div class="hidden">
-<p>Please do not add polyfills on MDN pages. For more details, refer to: <a href="https://discourse.mozilla.org/t/mdn-rfc-001-mdn-wiki-pages-shouldnt-be-a-distributor-of-polyfills/24500">https://discourse.mozilla.org/t/mdn-rfc-001-mdn-wiki-pages-shouldnt-be-a-distributor-of-polyfills/24500</a></p>
-</div>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Специфікація</th>
- <th scope="col">Статус</th>
- <th scope="col">Коментар</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.fromentries', 'Object.fromEntries')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td>Початкове визначення у ECMAScript 2019.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-
-
-<p>{{Compat("javascript.builtins.Object.fromEntries")}}</p>
-
-<h2 id="Дивіться_також">Дивіться також</h2>
-
-<ul>
- <li>{{jsxref("Object.entries()")}}</li>
- <li>{{jsxref("Object.keys()")}}</li>
- <li>{{jsxref("Object.values()")}}</li>
- <li>{{jsxref("Map.prototype.entries()")}}</li>
- <li>{{jsxref("Map.prototype.keys()")}}</li>
- <li>{{jsxref("Map.prototype.values()")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.html b/files/uk/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.html
deleted file mode 100644
index 71b7d34b53..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.html
+++ /dev/null
@@ -1,159 +0,0 @@
----
-title: Object.getOwnPropertyDescriptor()
-slug: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor
-tags:
- - ECMAScript 5
- - JavaScript
- - Object
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor
----
-<div>{{JSRef}}</div>
-
-<p>Метод <code><strong>Object.getOwnPropertyDescriptor()</strong></code> повертає дескриптор властивості для особистої властивості (такої, що присутня безпосередньо на об'єкті, а не у ланцюжку його прототипів) наданого об'єкта.</p>
-
-<div>{{EmbedInteractiveExample("pages/js/object-getownpropertydescriptor.html")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><code>Object.getOwnPropertyDescriptor(<var>obj</var>, <var>prop</var>)</code></pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>obj</code></dt>
- <dd>Об'єкт, в якому потрібно знайти властивість.</dd>
- <dt><code>prop</code></dt>
- <dd>Ім'я або {{jsxref("Symbol","символ")}} властивості, опис якої отримується.</dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>Дескриптор наданої властивості, якщо така існує на об'єкті, інакше {{jsxref("undefined")}}.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Цей метод дозволяє вивчити докладний опис властивості. Властивість у JavaScript складається з імені у вигляді рядка або {{jsxref("Symbol", "символа")}} та дескриптора властивості. Більше інформації щодо типів дескрипторів властивостей та їхніх атрибутів можна знайти у статті {{jsxref("Object.defineProperty()")}}.</p>
-
-<p>Дескриптор властивості - це запис, що має деякі з наступних атрибутів:</p>
-
-<dl>
- <dt><code>value</code></dt>
- <dd>Значення, пов'язане з властивістю (тільки у дескрипторах даних).</dd>
- <dt><code>writable</code></dt>
- <dd>Дорівнює <code>true</code> тоді й тільки тоді, коли значення, пов'язане з властивістю, може бути змінене (тільки у дескрипторах даних).</dd>
- <dt><code>get</code></dt>
- <dd>Функція, що служить гетером властивості, або {{jsxref("undefined")}}, якщо гетера немає (тільки у дескрипторах доступу).</dd>
- <dt><code>set</code></dt>
- <dd>Функція, що служить сетером властивості, або {{jsxref("undefined")}}, якщо сетера немає (тільки у дескрипторах доступу).</dd>
- <dt><code>configurable</code></dt>
- <dd>Дорівнює <code>true</code> тоді й тільки тоді, коли тип цього дескриптора властивості може бути змінений, та якщо властивість може бути видалена з відповідного об'єкта.</dd>
- <dt><code>enumerable</code></dt>
- <dd>Дорівнює <code>true</code> тоді й тільки тоді, коли ця властивість з'являється під час переліку властивостей на відповідному об'єкті.</dd>
-</dl>
-
-<h2 id="Приклади">Приклади</h2>
-
-<pre class="brush: js">var o, d;
-
-o = { get foo() { return 17; } };
-d = Object.getOwnPropertyDescriptor(o, 'foo');
-// d дорівнює {
-// configurable: true,
-// enumerable: true,
-// get: /*функція-гетер*/,
-// set: undefined
-// }
-
-o = { bar: 42 };
-d = Object.getOwnPropertyDescriptor(o, 'bar');
-// d дорівнює {
-// configurable: true,
-// enumerable: true,
-// value: 42,
-// writable: true
-// }
-
-o = { [Symbol.for('baz')]: 73 }
-d = Object.getOwnPropertyDescriptor(o, Symbol.for('baz'));
-// d дорівнює {
-// configurable: true,
-// enumerable: true,
-// value: 73,
-// writable: true
-// }
-
-o = {};
-Object.defineProperty(o, 'qux', {
- value: 8675309,
- writable: false,
- enumerable: false
-});
-d = Object.getOwnPropertyDescriptor(o, 'qux');
-// d дорівнює {
-// value: 8675309,
-// writable: false,
-// enumerable: false,
-// configurable: false
-// }
-</pre>
-
-<h2 id="Примітки">Примітки</h2>
-
-<p>У ES5, якщо перший аргумент цього методу не є об'єктом (є примітивом), це спричинить помилку {{jsxref("TypeError")}}. У ES2015 перший аргумент, що не є об'єктом, буде спочатку приведений до об'єкта.</p>
-
-<pre class="brush: js">Object.getOwnPropertyDescriptor('foo', 0);
-// TypeError: "foo" is not an object // код ES5
-
-Object.getOwnPropertyDescriptor('foo', 0);
-// Об'єкт, повернений кодом ES2015: {
-// configurable: false,
-// enumerable: true,
-// value: "f",
-// writable: false
-// }
-</pre>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Специфікація</th>
- <th scope="col">Статус</th>
- <th scope="col">Коментар</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ES5.1', '#sec-15.2.3.3', 'Object.getOwnPropertyDescriptor')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td>Початкове визначення. Реалізоване у JavaScript 1.8.5.</td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-object.getownpropertydescriptor', 'Object.getOwnPropertyDescriptor')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.getownpropertydescriptor', 'Object.getOwnPropertyDescriptor')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-
-
-<p>{{Compat("javascript.builtins.Object.getOwnPropertyDescriptor")}}</p>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Object.defineProperty()")}}</li>
- <li>{{jsxref("Reflect.getOwnPropertyDescriptor()")}}</li>
-</ul>
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
deleted file mode 100644
index fa5dae0e79..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/getownpropertydescriptors/index.html
+++ /dev/null
@@ -1,118 +0,0 @@
----
-title: Object.getOwnPropertyDescriptors()
-slug: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors
-tags:
- - JavaScript
- - Object
- - Об'єкт
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors
----
-<div>{{JSRef}}</div>
-
-<p>Метод <code><strong>Object.getOwnPropertyDescriptors()</strong></code> повертає дескриптори всіх особистих властивостей наданого об'єкта.</p>
-
-<div>{{EmbedInteractiveExample("pages/js/object-getownpropertydescriptors.html")}}</div>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox">Object.getOwnPropertyDescriptors(<var>obj</var>)</pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>obj</code></dt>
- <dd>Об'єкт, для якого потрібно отримати дескриптори всіх особистих властивостей.</dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>Об'єкт, що містить дескриптори всіх особистих властивостей об'єкта. Може бути порожній об'єкт, якщо властивостей немає.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Цей метод дозволяє вивчити докладний опис усіх особистих властивостей об'єкта. Властивість у JavaScript складається з імені у вигляді рядка або {{jsxref("Symbol","символа")}} та дескриптора властивості. Більше інформації щодо типів дескрипторів властивостей та їхніх атрибутів можна знайти у статті {{jsxref("Object.defineProperty()")}}.</p>
-
-<p>Дескриптор властивості - це запис, що має деякі з наступних атрибутів:</p>
-
-<dl>
- <dt><code>value</code></dt>
- <dd>Значення, пов'язане з властивістю (тільки у дескрипторах даних).</dd>
- <dt><code><strong>writable</strong></code></dt>
- <dd>Дорівнює <code>true</code> тоді й тільки тоді, коли значення, пов'язане з властивістю, може бути змінене (тільки у дескрипторах даних).</dd>
- <dt><code>get</code></dt>
- <dd>Функція, що служить гетером властивості, або {{jsxref("undefined")}}, якщо гетера немає (тільки у дескрипторах доступу).</dd>
- <dt><code>set</code></dt>
- <dd>Функція, що служить сетером властивості, або {{jsxref("undefined")}}, якщо сетера немає (тільки у дескрипторах доступу).</dd>
- <dt><code>configurable</code></dt>
- <dd>Дорівнює <code>true</code> тоді й тільки тоді, коли тип цього дескриптора властивості може бути змінений, та якщо властивість може бути видалена з відповідного об'єкта.</dd>
- <dt><code>enumerable</code></dt>
- <dd>Дорівнює <code>true</code> тоді й тільки тоді, коли ця властивість з'являється під час переліку властивостей на відповідному об'єкті.</dd>
-</dl>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="Створення_дрібного_клону">Створення дрібного клону</h3>
-
-<p>В той час як метод {{jsxref("Object.assign()")}} скопіює лише особисті та перелічувані властивості з наданого об'єкта у цільовий, ви можете скористатись цим методом та {{jsxref("Object.create()")}} для дрібного копіювання між двома невідомими об'єктами:</p>
-
-<pre class="brush: js">Object.create(
- Object.getPrototypeOf(obj),
- Object.getOwnPropertyDescriptors(obj)
-);
-</pre>
-
-<h3 id="Створення_підкласу">Створення підкласу</h3>
-
-<p>Типовим способом створення підкласу є визначити підклас, присвоїти його прототипу екземпляр суперкласу, і далі визначити властивості на цьому екземплярі. Це може бути незграбно, особливо для гетерів та сетерів. Ви можете натомість скористатись даним кодом для призначення прототипу:</p>
-
-<pre class="brush: js">function superclass() {}
-superclass.prototype = {
- // Визначте тут свої методи та властивості
-};
-function subclass() {}
-subclass.prototype = Object.create(
-  superclass.prototype,
-  {
- // Визначте тут свої методи та властивості
- }
-);
-</pre>
-
-<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('ESDraft', '#sec-object.getownpropertydescriptors', 'Object.getOwnPropertyDescriptors')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td>Початкове визначення у ECMAScript 2017.</td>
- </tr>
- <tr>
- <td>{{SpecName('ES2017', '#sec-object.getownpropertydescriptors', 'Object.getOwnPropertyDescriptors')}}</td>
- <td>{{Spec2('ES2017')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.Object.getOwnPropertyDescriptors")}}</p>
-</div>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Object.getOwnPropertyDescriptor()")}}</li>
- <li>{{jsxref("Object.defineProperty()")}}</li>
- <li><a href="https://github.com/tc39/proposal-object-getownpropertydescriptors">Поліфіл</a></li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/getownpropertynames/index.html b/files/uk/web/javascript/reference/global_objects/object/getownpropertynames/index.html
deleted file mode 100644
index df8c13a161..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/getownpropertynames/index.html
+++ /dev/null
@@ -1,175 +0,0 @@
----
-title: Object.getOwnPropertyNames()
-slug: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames
-tags:
- - ECMAScript5
- - JavaScript
- - Об'єкт
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames
----
-<div>{{JSRef}}</div>
-
-<p>Метод <strong><code>Object.getOwnPropertyNames()</code></strong> повертає масив усіх властивостей (в тому числі неперелічуваних, за винятком властивостей, що використовують символ), знайдених безпосередньо на наданому об'єкті.</p>
-
-<div>{{EmbedInteractiveExample("pages/js/object-getownpropertynames.html")}}</div>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="brush: js">Object.getOwnPropertyNames(<var>obj</var>)</pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code><var>obj</var></code></dt>
- <dd>Об'єкт, чиї перелічувані та неперелічувані властивості будуть повернені.</dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>Масив рядків, що відповідає властивостям, знайденим безпосередньо у наданому об'єкті.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p><code>Object.getOwnPropertyNames()</code> повертає масив, чиї елементи є рядками, що відповідають перелічуваним та неперелічуваним властивостям, знайденим безпосередньо на наданому об'єкті <code><var>obj</var></code>. Порядок перелічуваних властивостей у масиві відповідає порядку, в якому видає властивості об'єкта цикл {{jsxref("Statements/for...in", "for...in")}} (або метод {{jsxref("Object.keys()")}}). Порядок неперелічуваних властивостей у масиві, а також порядок посеред перелічуваних властивостей, не визначені.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="Використання_Object.getOwnPropertyNames">Використання <code>Object.getOwnPropertyNames()</code></h3>
-
-<pre class="brush: js">var arr = ['а', 'б', 'в'];
-console.log(Object.getOwnPropertyNames(arr).sort());
-// виведе ["0", "1", "2", "length"]
-
-// подібний до масиву об'єкт
-var obj = { 0: 'а', 1: 'б', 2: 'в' };
-console.log(Object.getOwnPropertyNames(obj).sort());
-// виведе ["0", "1", "2"]
-
-// Виведення імен та значень властивостей через Array.forEach
-Object.getOwnPropertyNames(obj).forEach(
- function (val, idx, array) {
- console.log(val + ' -&gt; ' + obj[val]);
- }
-);
-// виведе
-// 0 -&gt; а
-// 1 -&gt; б
-// 2 -&gt; в
-
-// неперелічувана властивість
-var my_obj = Object.create({}, {
- getFoo: {
- value: function() { return this.foo; },
- enumerable: false
- }
-});
-my_obj.foo = 1;
-
-console.log(Object.getOwnPropertyNames(my_obj).sort());
-// виведе ["foo", "getFoo"]
-</pre>
-
-<p>Якщо вам потрібні тільки перелічувані властивості, дивіться {{jsxref("Object.keys()")}} або скористайтесь циклом {{jsxref("Statements/for...in", "for...in")}} (зауважте, що це також поверне перелічувані властивості, знайдені у ланцюжку прототипів об'єкта, якщо тільки вони не були відфільтровані методом {{jsxref("Object.prototype.hasOwnProperty()", "hasOwnProperty()")}}).</p>
-
-<p>Елементи, знайдені у ланцюжку прототипів, не додаються у список:</p>
-
-<pre class="brush: js">function ParentClass() {}
-ParentClass.prototype.inheritedMethod = function() {};
-
-function ChildClass() {
- this.prop = 5;
- this.method = function() {};
-}
-ChildClass.prototype = new ParentClass;
-ChildClass.prototype.prototypeMethod = function() {};
-
-console.log(
- Object.getOwnPropertyNames(
- new ChildClass() // ["prop", "method"]
- )
-);
-</pre>
-
-<h3 id="Отримати_лише_неперелічувані_властивості">Отримати лише неперелічувані властивості</h3>
-
-<p>Тут використовується функція {{jsxref("Array.prototype.filter()")}} для видалення перелічуваних ключів (отриманих методом {{jsxref("Object.keys()")}}) зі списка усіх ключів (отриманих методом <code>Object.getOwnPropertyNames()</code>), таким чином, повертаючи тільки неперелічувані ключі.</p>
-
-<pre class="brush: js">var target = myObject;
-var enum_and_nonenum = Object.getOwnPropertyNames(target);
-var enum_only = Object.keys(target);
-var nonenum_only = enum_and_nonenum.filter(function(key) {
- var indexInEnum = enum_only.indexOf(key);
- if (indexInEnum == -1) {
- // Ключ не знайдений у ключах enum_only,
- // це означає, що він є неперелічуваним,
- // тому повертаємо true, щоб залишити його у фільтрі
- return true;
- } else {
- return false;
- }
-});
-
-console.log(nonenum_only);
-</pre>
-
-<h2 id="Примітки">Примітки</h2>
-
-<p>У ES5, якщо аргумент цього методу не є об'єктом (примітив), це спричинить помилку {{jsxref("TypeError")}}. У ES2015 аргумент, що не є об'єктом, буде приведений до об'єкта.</p>
-
-<pre class="brush: js">Object.getOwnPropertyNames('foo');
-// TypeError: "foo" is not an object (код ES5)
-
-Object.getOwnPropertyNames('foo');
-// ["0", "1", "2", "length"] (код ES2015)
-</pre>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Специфікація</th>
- <th scope="col">Статус</th>
- <th scope="col">Коментар</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.getownpropertynames', 'Object.getOwnPropertyNames')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-object.getownpropertynames', 'Object.getOwnPropertyNames')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES5.1', '#sec-15.2.3.4', 'Object.getOwnPropertyNames')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td>Початкове визначення. Реалізоване у JavaScript 1.8.5.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-
-
-<p>{{Compat("javascript.builtins.Object.getOwnPropertyNames")}}</p>
-
-<h2 id="Примітки_щодо_Firefox">Примітки щодо Firefox</h2>
-
-<p>До Firefox 28 метод <code>Object.getOwnPropertyNames</code> не бачив невирішених властивостей об'єктів {{jsxref("Error")}}. Це було виправлено у пізніших версіях ({{bug("724768")}}).</p>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li><a href="/uk/docs/Web/JavaScript/Перелічуваність_та_належність_властивостей">Перелічуваність та належність властивостей</a></li>
- <li>{{jsxref("Object.prototype.hasOwnProperty()")}}</li>
- <li>{{jsxref("Object.prototype.propertyIsEnumerable()")}}</li>
- <li>{{jsxref("Object.create()")}}</li>
- <li>{{jsxref("Object.keys()")}}</li>
- <li>{{jsxref("Array.forEach()")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/getownpropertysymbols/index.html b/files/uk/web/javascript/reference/global_objects/object/getownpropertysymbols/index.html
deleted file mode 100644
index 130c6df073..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/getownpropertysymbols/index.html
+++ /dev/null
@@ -1,84 +0,0 @@
----
-title: Object.getOwnPropertySymbols()
-slug: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertySymbols
-tags:
- - ECMAScript 2015
- - JavaScript
- - Об'єкт
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertySymbols
----
-<div>{{JSRef}}</div>
-
-<p>Метод <code><strong>Object.getOwnPropertySymbols()</strong></code> повертає масив усіх символьних властивостей, знайдених безпосередньо на наданому об'єкті.</p>
-
-<div>{{EmbedInteractiveExample("pages/js/object-getownpropertysymbols.html")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="brush: js notranslate"><code>Object.getOwnPropertySymbols(<var>obj</var>)</code></pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>obj</code></dt>
- <dd>Об'єкт, чиї символьні властивості будуть повернені.</dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>Масив усіх символьних властивостей, знайдених безпосередньо на наданому об'єкті.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Подібно до {{jsxref("Object.getOwnPropertyNames()")}}, ви можете отримати усі символьні властивості наданого об'єкта у вигляді масиву символів. Зауважте, що сам метод {{jsxref("Object.getOwnPropertyNames()")}} не містить символьних властивостей об'єкта і повертає лише рядкові властивості.</p>
-
-<p>Оскільки жоден об'єкт не має початково символьних властивостей, <code>Object.getOwnPropertySymbols()</code> повертає порожній масив, якщо ви не присвоїли символьні властивості своєму об'єкту.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="Використання_getOwnPropertySymbols">Використання getOwnPropertySymbols</h3>
-
-<pre class="brush: js notranslate">var obj = {};
-var a = Symbol('a');
-var b = Symbol.for('b');
-
-obj[a] = 'localSymbol';
-obj[b] = 'globalSymbol';
-
-var objectSymbols = Object.getOwnPropertySymbols(obj);
-
-console.log(objectSymbols.length); // 2
-console.log(objectSymbols); // [Symbol(a), Symbol(b)]
-console.log(objectSymbols[0]); // Symbol(a)
-</pre>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <th scope="col">Специфікація</th>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.getownpropertysymbols', 'Object.getOwnPropertySymbols')}}</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.Object.getOwnPropertySymbols")}}</p>
-</div>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Object.getOwnPropertyNames()")}}</li>
- <li>{{jsxref("Symbol","Символ")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/getprototypeof/index.html b/files/uk/web/javascript/reference/global_objects/object/getprototypeof/index.html
deleted file mode 100644
index c9aeaa48c6..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/getprototypeof/index.html
+++ /dev/null
@@ -1,98 +0,0 @@
----
-title: Object.getPrototypeOf()
-slug: Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf
-tags:
- - ECMAScript5
- - JavaScript
- - Об'єкт
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf
----
-<div>{{JSRef}}</div>
-
-<p>Метод <code><strong>Object.getPrototypeOf()</strong></code> повертає прототип (тобто, значення внутрішньої властивості <code>[[Prototype]]</code>) вказаного об'єкта.</p>
-
-<div>{{EmbedInteractiveExample("pages/js/object-getprototypeof.html")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><code>Object.getPrototypeOf(<var>obj</var>)</code></pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code><var>obj</var></code></dt>
- <dd>Об'єкт, чий прототип буде повернений.</dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>Прототип наданого об'єкта. Якщо немає успадкованих властивостей, повертається {{jsxref("null")}}.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<pre class="brush: js">var proto = {};
-var obj = Object.create(proto);
-Object.getPrototypeOf(obj) === proto; // true
-</pre>
-
-<h2 id="Примітки">Примітки</h2>
-
-<p>У ES5 буде викинуто виняток {{jsxref("TypeError")}}, якщо параметр <var>obj</var> не є об'єктом. У ES2015 параметр буде приведений до {{jsxref("Object","об'єкта")}}.</p>
-
-<pre class="brush: js">Object.getPrototypeOf('foo');
-// TypeError: "foo" is not an object (код ES5)
-Object.getPrototypeOf('foo');
-// String.prototype (код ES2015)
-</pre>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Специфікація</th>
- <th scope="col">Статус</th>
- <th scope="col">Коментар</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ES5.1', '#sec-15.2.3.2', 'Object.getPrototypeOf')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td>Початкове визначення.</td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-object.getprototypeof', 'Object.getPrototypeOf')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.getprototypeof', 'Object.getPrototypeOf')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-
-
-<p>{{Compat("javascript.builtins.Object.getPrototypeOf")}}</p>
-
-<h2 id="Примітки_щодо_Opera">Примітки щодо Opera</h2>
-
-<p>Хоча старіші версії Opera поки що не підтримують <code>Object.getPrototypeOf()</code>, Opera підтримує нестандартну властивість {{jsxref("Object.proto", "__proto__")}}, починаючи з Opera 10.50.</p>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Object.prototype.isPrototypeOf()")}}</li>
- <li>{{jsxref("Object.setPrototypeOf()")}}</li>
- <li>{{jsxref("Object.prototype.__proto__")}}</li>
- <li>Пост John Resig щодо <a class="external" href="http://ejohn.org/blog/objectgetprototypeof/">getPrototypeOf</a></li>
- <li>{{jsxref("Reflect.getPrototypeOf()")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/hasownproperty/index.html b/files/uk/web/javascript/reference/global_objects/object/hasownproperty/index.html
deleted file mode 100644
index b41d85e896..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/hasownproperty/index.html
+++ /dev/null
@@ -1,158 +0,0 @@
----
-title: Object.prototype.hasOwnProperty()
-slug: Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty
----
-<div>{{JSRef}}</div>
-
-<p>Метод <strong><code>hasOwnProperty()</code></strong> повертає булеве значення, яке вказує, чи є задана властивість особистою властивістю об'єкта (тобто, не успадкованою).</p>
-
-<div>{{EmbedInteractiveExample("pages/js/object-prototype-hasownproperty.html")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><var>obj</var>.hasOwnProperty(<var>prop</var>)</pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><var>prop</var></dt>
- <dd>Ім'я у вигляді {{jsxref("String", "рядка")}} або {{Glossary("Symbol","символ")}} властивості, яку потрібно перевірити.</dd>
-</dl>
-
-<h3 id="Вертає">Вертає</h3>
-
-<p>{{jsxref("Boolean","Булеве значення")}}, яке вказує, чи є задана властивість особистою властивістю об'єкта.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Всі нащадки {{jsxref("Object")}} успадковують метод <code>hasOwnProperty</code>. Цей метод можна використовувати, щоб визначити, чи є вказана властивість особистою властивістю об'єкта; на відмінну від оператора {{jsxref("Operators/in", "in")}}, цей метод не перевіряє властивість у ланцюзі прототипів об'єкта. Якщо {{jsxref("Object","об'єкт")}} є {{jsxref("Array","масивом")}}, то метод  <code>hasOwnProperty</code> може перевірити, чи існує індекс у масиві.</p>
-
-<h2 id="Примітка">Примітка</h2>
-
-<p><code>hasOwnProperty</code> повертає <code>true</code>, навіть якщо значення властивості дорівнює <code>null</code> або <code>undefined</code>.</p>
-
-<pre class="brush: js">o = new Object();
-o.propOne = null;
-o.hasOwnProperty('propOne'); // повертає true
-o.propTwo = undefined;
-o.hasOwnProperty('propTwo'); // повертає true
-</pre>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="Використання_hasOwnProperty_для_перевірки_існування_властивості">Використання <code>hasOwnProperty</code> для перевірки існування властивості</h3>
-
-<p>Наступний приклад визначає, чи має об'єкт <code>o</code> властивість на ім'я <code>prop</code>:</p>
-
-<pre class="brush: js">o = new Object();
-o.hasOwnProperty('prop'); // повертає false
-o.prop = 'exists';
-o.hasOwnProperty('prop'); // повертає true
-</pre>
-
-<h3 id="Прямі_властивості_проти_успадкованих">Прямі властивості проти успадкованих</h3>
-
-<p>Наступний приклад демонструє різницю між прямими властивостями та успадкованими через ланцюг прототипів:</p>
-
-<pre class="brush: js">o = new Object();
-o.prop = 'exists';
-o.hasOwnProperty('prop'); // повертає true
-o.hasOwnProperty('toString'); // повертає false
-o.hasOwnProperty('hasOwnProperty'); // повертає false
-</pre>
-
-<h3 id="Перебір_властивостей_обєкта">Перебір властивостей об'єкта</h3>
-
-<p>Наступний приклад показує, як перебирати властивості об'єкта, не рухаючи успадковані властивості. Зауважте, що цикл {{jsxref("Statements/for...in", "for...in")}} перебирає лише перелічувані властивості, тому не слід вважати, виходячи з відсутності неперелічуваних властивостей, показаних у циклі, що <code>hasOwnProperty</code> сам обмежений суто перелічуваними елементами (як у випадку з {{jsxref("Object.getOwnPropertyNames()")}}).</p>
-
-<pre class="brush: js">var buz = {
- fog: 'stack'
-};
-
-for (var name in buz) {
- if (buz.hasOwnProperty(name)) {
- console.log('це властивість (' +
- name + '). Значення: ' + buz[name]);
- }
- else {
- console.log(name); // toString або щось інше
- }
-}
-</pre>
-
-<h3 id="Використання_hasOwnProperty_в_якості_назви_властивості">Використання <code>hasOwnProperty</code> в якості назви властивості</h3>
-
-<p>JavaScript не захищає ім'я властивості <code>hasOwnProperty</code>; як наслідок, якщо існує можливість, що об'єкт може мати властивість з цим ім'ям, то необхідно використовувати <em>зовнішній</em> метод <code>hasOwnProperty</code>, щоб отримати правильний результат:</p>
-
-<pre class="brush: js">var foo = {
- hasOwnProperty: function() {
- return false;
- },
- bar: 'Небезпечна зона'
-};
-
-foo.hasOwnProperty('bar'); // завжди повертає false
-
-// Використаємо hasOwnProperty іншого об'єкта
-// і викличемо його з 'this', рівним foo
-({}).hasOwnProperty.call(foo, 'bar'); // true
-
-// Також можна використати властивість hasOwnProperty
-// з прототипа Object для цієї мети
-Object.prototype.hasOwnProperty.call(foo, 'bar'); // true
-</pre>
-
-<p>Зауважте, що в останньому випадку не створюється нових об'єктів.</p>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Специфікація</th>
- <th scope="col">Статус</th>
- <th scope="col">Коментар</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.prototype.hasownproperty', 'Object.prototype.hasOwnProperty')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-object.prototype.hasownproperty', 'Object.prototype.hasOwnProperty')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES5.1', '#sec-15.2.4.5', 'Object.prototype.hasOwnProperty')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES3')}}</td>
- <td>{{Spec2('ES3')}}</td>
- <td>Початкове визначення. Реалізоване у JavaScript 1.5.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Підтримка_браузерів">Підтримка браузерів</h2>
-
-
-
-<p>{{Compat("javascript.builtins.Object.hasOwnProperty")}}</p>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li><a href="/uk/docs/Web/JavaScript/Перелічуваність_та_належність_властивостей">Перелічуваність та належність властивостей</a></li>
- <li>{{jsxref("Object.getOwnPropertyNames()")}}</li>
- <li>{{jsxref("Statements/for...in", "for...in")}}</li>
- <li>{{jsxref("Operators/in", "in")}}</li>
- <li><a href="/uk/docs/Web/JavaScript/Inheritance_and_the_prototype_chain">Посібник JavaScript: Наслідування та ланцюжок прототипів</a></li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/index.html b/files/uk/web/javascript/reference/global_objects/object/index.html
deleted file mode 100644
index 6fdb6e8adb..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/index.html
+++ /dev/null
@@ -1,267 +0,0 @@
----
-title: Object
-slug: Web/JavaScript/Reference/Global_Objects/Object
-tags:
- - Constructor
- - JavaScript
- - NeedsTranslation
- - Object
- - TopicStub
-translation_of: Web/JavaScript/Reference/Global_Objects/Object
----
-<div>{{JSRef}}</div>
-
-<p>Клас <code><strong>Object</strong></code> відображає один з <a href="/uk/docs/Web/JavaScript/Data_structures">типів даних JavaScript</a>. Він використовується для збереження різноманітних колекцій, що використовують ключі, та більш складних сутностей. Об'єкти можуть бути створені за допомогою конструктора {{jsxref("Object/Object", "Object()")}} або <a href="/uk/docs/Web/JavaScript/Reference/Operators/Ініціалізація_об’єктів">об'єктного ініціалізатора / літерального синтаксису</a>.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Майже усі об'єкти у JavaScript є екземплярами {{jsxref("Object")}}; типовий об'єкт успадковує властивості (в тому числі методи) від <code>Object.prototype</code>, хоча ці властивості можуть бути перекриті (перевизначені). Однак, можна навмисно створити <font face="consolas, Liberation Mono, courier, monospace"><span style="background-color: rgba(220, 220, 220, 0.5);">Object</span></font>, для якого це буде не так (наприклад, за допомогою {{jsxref("Object.create", "Object.create(null)")}}), або змінити його таким чином (наприклад, через {{jsxref("Object.setPrototypeOf")}}).</p>
-
-<p>Зміни у прототипі <code>Object</code> видимі <strong>усім</strong> об'єктам через ланцюжок прототипів, якщо властивості та методи, яких стосуються ці зміни, не були перевизначені далі у ланцюжку прототипів. Це надає дуже потужний, хоча й потенційно небезпечний, механізм для перевизначення або розширення поведінки об'єкта.</p>
-
-<p><font face="Open Sans, Arial, sans-serif">Конструктор </font><code>Object</code> створює обгортку об'єкта для заданого значення.</p>
-
-<ul>
- <li>Якщо значенням є {{jsxref("null")}} або {{jsxref("undefined")}}, конструктор створить та поверне порожній об'єкт.</li>
- <li>В іншому випадку, він поверне об'єкт того типу, який відповідає наданому значенню.</li>
- <li>Якщо значення вже є об'єктом, конструктор поверне це значення.</li>
-</ul>
-
-<p>Під час виклику не у контексті конструктора, <code>Object</code> поводиться ідентично до <code>new Object()</code>.</p>
-
-<p>Дивіться також <a href="/uk/docs/Web/JavaScript/Reference/Operators/Ініціалізація_об’єктів">Ініціалізатор об'єктів / літеральний синтаксис</a>.</p>
-
-<h3 id="Видалення_властивості_обєкта">Видалення властивості об'єкта</h3>
-
-<p>У самому об'єкті не існує методів для видалення своїх властивостей (таких, як {{jsxref("Map.prototype.delete", "Map.prototype.delete()")}}). Щоб зробити це, необхідно скористатись <a href="/uk/docs/Web/JavaScript/Reference/Operators/delete">оператором delete</a>.</p>
-
-<h2 id="Конструктор">Конструктор</h2>
-
-<dl>
- <dt>{{jsxref("Object/Object", "Object()")}}</dt>
- <dd>Створює новий об'єкт <code>Object</code>. Це обгортка для наданого значення.</dd>
-</dl>
-
-<h2 id="Статичні_методи">Статичні методи</h2>
-
-<dl>
- <dt>{{jsxref("Object.assign()")}}</dt>
- <dd>Копіює значення усіх перелічуваних особистих властивостей з одного або більше об'єктів у цільовий об'єкт.</dd>
- <dt>{{jsxref("Object.create()")}}</dt>
- <dd>Створює новий об'єкт із вказаним прототипним об'єктом і властивостями.</dd>
- <dt>{{jsxref("Object.defineProperty()")}}</dt>
- <dd>Додає зазначену властивість, описану наданим дескриптором, до об'єкта.</dd>
- <dt>{{jsxref("Object.defineProperties()")}}</dt>
- <dd>Додає зазначені властивості, описані наданими дескрипторами, до об'єкта.</dd>
- <dt>{{jsxref("Object.entries()")}}</dt>
- <dd>Повертає масив, що містить усі пари <code>[key, value]</code> <strong>особистих</strong> перелічуваних рядкових властивостей данного  об'єкта.</dd>
- <dt>{{jsxref("Object.freeze()")}}</dt>
- <dd>Заморожує об'єкт: інший код не може видаляти або змінювати будь-які властивості.</dd>
- <dt>{{jsxref("Object.fromEntries()")}}</dt>
- <dd>Повертає новий об'єкт з ітерабельного об'єкта, що містить пари ключ-значення (зворотний до {{jsxref("Object.entries")}}).</dd>
- <dt>{{jsxref("Object.getOwnPropertyDescriptor()")}}</dt>
- <dd>Повертає дескриптор властивості для зазначенної властивості об'єкта.</dd>
- <dt>{{jsxref("Object.getOwnPropertyDescriptors()")}}</dt>
- <dd>Повертає об'єкт, що містить дескриптори всіх особистих властивостей об'єкта.</dd>
- <dt>{{jsxref("Object.getOwnPropertyNames()")}}</dt>
- <dd>Повертає масив, що містить імена всіх <strong>особистих</strong> перелічуваних і неперелічуванних властивостей даного об'єкта.</dd>
- <dt>{{jsxref("Object.getOwnPropertySymbols()")}}</dt>
- <dd>Повертає масив усіх символьних властивостей, знайдених безпосередньо на даному об'єкті.</dd>
- <dt>{{jsxref("Object.getPrototypeOf()")}}</dt>
- <dd>Повертає прототип вказаного об'єкта.</dd>
- <dt>{{jsxref("Object.is()")}}</dt>
- <dd>Перевіряє, чи мають два аргументи однакове значення. Прирівнює усі значення NaN (що відрізняється як від абстрактної рівності, так і від строгої рівності).</dd>
- <dt>{{jsxref("Object.isExtensible()")}}</dt>
- <dd>Визначає, чи дозволене розширення об'єкта.</dd>
- <dt>{{jsxref("Object.isFrozen()")}}</dt>
- <dd>Визначає, чи є об'єкт замороженим.</dd>
- <dt>{{jsxref("Object.isSealed()")}}</dt>
- <dd>Визначає, чи є об'єкт запечатанним.</dd>
- <dt>{{jsxref("Object.keys()")}}</dt>
- <dd>Повертає масив, що містить імена всіх <strong>особистих</strong> перелічуваних рядкових властивостей даного об'єкта.</dd>
- <dt>{{jsxref("Object.preventExtensions()")}}</dt>
- <dd>Запобігає будь-яким розширенням об'єкта.</dd>
- <dt>{{jsxref("Object.seal()")}}</dt>
- <dd>Запобігає можливості іншого коду видаляти властивості об'єкта.</dd>
- <dt>{{jsxref("Object.setPrototypeOf()")}}</dt>
- <dd>Встановлює прототип (тобто, внутрішню властивість <code>[[Prototype]]</code> об'єкта).</dd>
- <dt>{{jsxref("Object.values()")}}</dt>
- <dd>Повертає масив, який містить значення, що відповідають усім <strong>особистим</strong> перелічуваним рядковим властивостям даного об'єкта.</dd>
-</dl>
-
-<h2 id="Властивості_екземплярів">Властивості екземплярів </h2>
-
-<dl>
- <dt>{{jsxref("Object.prototype.constructor")}}</dt>
- <dd>Визначає функцію, що створює прототип об'єкта.</dd>
- <dt>{{jsxref("Object.prototype.proto","Object.prototype.__proto__")}}</dt>
- <dd>Вказує на об'єкт, що був використаний як прототип, коли створювався екземпляр об'єкта.</dd>
- <dt>{{jsxref("Object.prototype.noSuchMethod","Object.prototype.__noSuchMethod__")}}</dt>
- <dd>Дозволяє визначити функцію, яка буде виконуватись, коли на об'єкті викликатиметься неіснуючий елемент.</dd>
-</dl>
-
-<h2 id="Методи_екземплярів">Методи екземплярів</h2>
-
-<dl>
- <dt>{{jsxref("Object.prototype.__defineGetter__()")}}</dt>
- <dd>Прив'язує функцію до властивості, яка, під час звернення до неї, викликатиме цю функцію та повертатиме значення, яке повернула функція.</dd>
- <dt>{{jsxref("Object.prototype.__defineSetter__()")}}</dt>
- <dd>Прив'язує функцію до властивості, яка, під час присвоєння, виконує цю функцію, яка змінює властивість.</dd>
- <dt>{{jsxref("Object.prototype.__lookupGetter__()")}}</dt>
- <dd>Повертає функцію, прив'язану до вказаної властивості методом {{jsxref("Object.prototype.__defineGetter__()", "__defineGetter__()")}}.</dd>
- <dt>{{jsxref("Object.prototype.__lookupSetter__()")}}</dt>
- <dd>Повертає функцію, прив'язану до вказаної властивості методом {{jsxref("Object.prototype.__defineSetter__()", "__defineSetter__()")}}.</dd>
- <dt>{{jsxref("Object.prototype.hasOwnProperty()")}}</dt>
- <dd>Повертає булеве значення, що вказує, чи об'єкт містить вказану властивість як особисту властивість цього об'єкта, а не успадковану через ланцюжок прототипів.</dd>
- <dt>{{jsxref("Object.prototype.isPrototypeOf()")}}</dt>
- <dd>Повертає булеве значення, що вказує, чи присутній об'єкт, на якому викликається цей метод, у ланцюжку прототипів вказаного об'єкта.</dd>
- <dt>{{jsxref("Object.prototype.propertyIsEnumerable()")}}</dt>
- <dd>Повертає булеве значення, що вказує, чи встановлений внутрішній <a href="/uk/docs/Web/JavaScript/Data_structures#Properties">атрибут ECMAScript [[Enumerable]]</a>.</dd>
- <dt>{{jsxref("Object.prototype.toLocaleString()")}}</dt>
- <dd>Викликає {{jsxref("Object.toString", "toString()")}}.</dd>
- <dt>{{jsxref("Object.prototype.toString()")}}</dt>
- <dd>Повертає рядок, що відображає об'єкт.</dd>
- <dt>{{jsxref("Object.prototype.unwatch()")}}</dt>
- <dd>Прибирає точку спостереження з властивості об'єкта.</dd>
- <dt>{{jsxref("Object.prototype.valueOf()")}}</dt>
- <dd>Повертає просту величину вказаного об'єкта.</dd>
- <dt>{{jsxref("Object.prototype.watch()")}} {{non-standard_inline}}</dt>
- <dd>Додає точку спостереження до властивості об'єкта.</dd>
-</dl>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="Використання_Object_з_типами_undefined_та_null">Використання <code>Object</code> з типами <code>undefined</code> та <code>null</code></h3>
-
-<p>Наступні приклади зберігають порожній об'єкт <code>Object</code> в <code>o</code>:</p>
-
-<pre class="brush: js notranslate">var o = new Object();
-</pre>
-
-<pre class="brush: js notranslate">var o = new Object(undefined);
-</pre>
-
-<pre class="brush: js notranslate">var o = new Object(null);
-</pre>
-
-<h3 id="Використання_Object_для_створення_обєктів_Boolean">Використання <code>Object</code> для створення об'єктів <code>Boolean</code></h3>
-
-<p>Наступні приклади зберігають об'єкти {{jsxref("Boolean")}} у <code>o</code>:</p>
-
-<pre class="brush: js notranslate">// еквівалентно до o = new Boolean(true);
-var o = new Object(true);
-</pre>
-
-<pre class="brush: js notranslate">// еквівалентно до o = new Boolean(false);
-var o = new Object(Boolean());
-</pre>
-
-<h3 id="Прототипи_обєктів">Прототипи об'єктів</h3>
-
-<p>Змінюючи поведінку існуючих методів <code>Object.prototype</code>, розгляньте включення коду додаванням вашого розширення до чи після існуючої логіки. Наприклад, цей (неперевірений) код буде попередньо виконувати власну логіку перед тим, як буде виконано вбудовану логіку або інше розширення.</p>
-
-<p>Коли викликається функція, аргументи виклику містяться у подібній до масиву "змінній" <a href="/uk/docs/Web/JavaScript/Reference/Functions/arguments">arguments</a>. Наприклад, у виклику <code>myFn(a, b, c)</code>, arguments, що знаходиться у тілі <code>myFn</code>, міститиме 3 подібні до масиву елементи, що відповідають <code>(a, b, c)</code>.</p>
-
-<p>Модифікуючи прототипи з хуками, просто передайте <code>this</code> та arguments (стан виклику) до поточної поведінки, викликавши <code>apply()</code> на функції. Цей шаблон може використовуватись для будь-яких прототипів, наприклад, <code>Node.prototype</code>, <code>Function.prototype</code>, і т. д.</p>
-
-<pre class="brush: js notranslate">var current = Object.prototype.valueOf;
-
-// Оскільки моя властивість "-prop-value" є наскрізною та не завжди
-// знаходиться в тому самому ланцюжку прототипів, я хочу змінити Object.prototype:
-Object.prototype.valueOf = function() {
- if (this.hasOwnProperty('-prop-value')) {
- return this['-prop-value'];
- } else {
- // Це не схоже на один з моїх об'єктів, тому повернемось
- // до початкової поведінки, відтворивши поточну поведінку якнайкраще.
- // Метод apply поводиться як "super" у деяких інших мовах.
- // І хоча valueOf() не приймає аргументів, можливо, інший хук їх прийматиме.
- return current.apply(this, arguments);
- }
-}</pre>
-
-<p>Оскільки JavaScript, насправді, не має об'єктів підкласу, прототип є зручним обхідним рішенням для створення об'єкта у ролі "базового класу" з певними функціями, що діють як об'єкти. Наприклад:</p>
-
-<pre class="brush: js notranslate">var Person = function(name) {
- this.name = name;
- this.canTalk = true;
-};
-
-Person.prototype.greet = function() {
- if (this.canTalk) {
- console.log('Привіт, я ' + this.name);
- }
-};
-
-var Employee = function(name, title) {
- Person.call(this, name);
- this.title = title;
-};
-
-Employee.prototype = Object.create(Person.prototype);
-
-Employee.prototype.greet = function() {
- if (this.canTalk) {
- console.log('Привіт, я ' + this.name + ', ' + this.title);
- }
-};
-
-var Customer = function(name) {
- Person.call(this, name);
-};
-
-Customer.prototype = Object.create(Person.prototype);
-
-var Mime = function(name) {
- Person.call(this, name);
- this.canTalk = false;
-};
-
-Mime.prototype = Object.create(Person.prototype);
-
-var bob = new Employee('Боб', 'будівельник');
-var joe = new Customer('Джо');
-var rg = new Employee('Ред Грін', 'майстер на всі руки');
-var mike = new Customer('Майк');
-var mime = new Mime('Мім');
-
-bob.greet();
-// Привіт, я Боб, будівельник
-
-joe.greet();
-// Привіт, я Джо
-
-rg.greet();
-// Привіт, я Ред Грін, майстер на всі руки
-
-mike.greet();
-// Привіт, я Майк
-
-mime.greet();</pre>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <tbody>
- <tr>
- <th scope="col">Специфікація</th>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object-objects', 'Object')}}</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div class="hidden">
-<p>The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
-</div>
-
-<p>{{Compat("javascript.builtins.Object")}}</p>
-
-<h2 id="Дивіться_також">Дивіться також</h2>
-
-<ul>
- <li><a href="/uk/docs/Web/JavaScript/Reference/Operators/Ініціалізація_об’єктів">Ініціалізатор об'єктів</a></li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/is/index.html b/files/uk/web/javascript/reference/global_objects/object/is/index.html
deleted file mode 100644
index 58578ab5d3..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/is/index.html
+++ /dev/null
@@ -1,128 +0,0 @@
----
-title: Object.is()
-slug: Web/JavaScript/Reference/Global_Objects/Object/is
-tags:
- - ECMAScript 2015
- - JavaScript
- - Method
- - Object
- - Рівність
- - Тотожність
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/is
----
-<div>{{JSRef}}</div>
-
-<div>Метод <code><strong>Object.is()</strong></code> з'ясовує, чи мають два аргументи <a href="/uk/docs/Web/JavaScript/Перевірка_на_рівність_та_однаковість">однакове значення</a>.</div>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><code>Object.is(<var>value1</var>, <var>value2</var>);</code></pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>value1</code></dt>
- <dd>Перше значення для порівняння.</dd>
- <dt><code>value2</code></dt>
- <dd>Друге значення для порівняння.</dd>
-</dl>
-
-<h3 id="Вертає">Вертає</h3>
-
-<p>{{jsxref("Boolean", "Булеве значення")}}, що вказує, чи мають вказані аргументи однакове значення.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p><code>Object.is()</code> визначає, чи мають вказані аргументи <a href="/uk/docs/Web/JavaScript/Перевірка_на_рівність_та_однаковість">однакове</a> значення. Два значення вважаються однаковими за однієї з наступних умов:</p>
-
-<ul>
- <li>обидва {{jsxref("undefined")}};</li>
- <li>обидва {{jsxref("null")}};</li>
- <li>обидва <code>true</code> або обидва <code>false</code>;</li>
- <li>обидва є рядками однакової довжини з однаковими символами у однаковому порядку;</li>
- <li>обидва є тим самим об'єктом (тобто, обидва мають те саме посилання);</li>
- <li>обидва є числами та
- <ul>
- <li>обидва <code>+0</code>;</li>
- <li>обидва <code>-0</code>;</li>
- <li>обидва {{jsxref("NaN")}};</li>
- <li>або обидва ненульові та не {{jsxref("NaN")}}, і мають однакові значення.</li>
- </ul>
- </li>
-</ul>
-
-<p>Це <em>не</em> те саме, що й рівність відповідно до оператора {{jsxref("Operators/Оператори_порівняння", "==", "#Equality")}}. Оператор <code>==</code> здійснює приведення типів обох операндів (якщо вони належать до різних типів даних) перед перевіркою на рівність (в результаті такий вираз як <code>"" == false</code> має значення <code>true</code>), натомість, метод <code>Object.is</code> не перетворює жодне значення.</p>
-
-<p>Це також <em>не</em> те саме, що й рівність відповідно до оператора {{jsxref("Operators/Оператори_порівняння", "===", "#Identity")}}. Оператор <code>===</code> (так само, як оператор <code>==</code>) вважає рівними числові значення <code>-0</code> та <code>+0</code>, а значення {{jsxref("Number.NaN")}} не вважає рівним до {{jsxref("NaN")}}.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<pre class="brush: js">Object.is('foo', 'foo'); // true
-Object.is(window, window); // true
-
-Object.is('foo', 'bar'); // false
-Object.is([], []); // false
-
-var foo = { a: 1 };
-var bar = { a: 1 };
-Object.is(foo, foo); // true
-Object.is(foo, bar); // false
-
-Object.is(null, null); // true
-
-// Особливі Випадки
-Object.is(0, -0); // false
-Object.is(-0, -0); // true
-Object.is(NaN, 0/0); // true
-</pre>
-
-<h2 id="Запасний_варіант_поліфіл">Запасний варіант (поліфіл)</h2>
-
-<pre class="brush: js">if (!Object.is) {
- Object.is = function(x, y) {
- // Алгоритм SameValue
- if (x === y) { // Steps 1-5, 7-10
- // Кроки 6.b-6.e: +0 != -0
- return x !== 0 || 1 / x === 1 / y;
- } else {
- // Крок 6.a: NaN == NaN
- return x !== x &amp;&amp; y !== y;
- }
- };
-}
-</pre>
-
-<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('ES6', '#sec-object.is', 'Object.is')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td>Первинне визначення.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.is', 'Object.is')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Підтримка_веб-переглядачами">Підтримка веб-переглядачами</h2>
-
-<div class="hidden">Таблиця сумісності на цій сторінці створена зі структурованих даних. Якщо ви хочете долучитися до розробки цих даних, пропонуйте нам свої pull request до репозиторію <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div>
-
-<p>{{Compat("javascript.builtins.Object.is")}}</p>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li><a href="/uk/docs/Web/JavaScript/Перевірка_на_рівність_та_однаковість">Перевірка на рівність та однаковість</a> — порівняння усіх трьох вбудованих мірил однаковості</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/isextensible/index.html b/files/uk/web/javascript/reference/global_objects/object/isextensible/index.html
deleted file mode 100644
index 440aa85e1f..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/isextensible/index.html
+++ /dev/null
@@ -1,112 +0,0 @@
----
-title: Object.isExtensible()
-slug: Web/JavaScript/Reference/Global_Objects/Object/isExtensible
-tags:
- - ECMAScript5
- - JavaScript
- - Object
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/isExtensible
----
-<div>{{JSRef}}</div>
-
-<p>Метод <strong><code>Object.isExtensible()</code></strong> визначає, чи є об'єкт розширюваним (чи може він бути доповнений новими властивостями).</p>
-
-<div>{{EmbedInteractiveExample("pages/js/object-isextensible.html")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><code>Object.isExtensible(<var>obj</var>)</code></pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>obj</code></dt>
- <dd>Об'єкт, який необхідно перевірити.</dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>{{jsxref("Boolean","Булеве значення")}}, що вказує, чи є об'єкт розширюваним.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>За замовчуванням об'єкти є розширюваними: нові властивості можуть додаватися до них, і (у рушіях, що підтримують {{jsxref("Object.proto", "__proto__")}} {{deprecated_inline}}) їхня властивість __proto__ може бути змінена. Об'єкт можна зробити нерозширюваним за допомогою {{jsxref("Object.preventExtensions()")}}, {{jsxref("Object.seal()")}} або {{jsxref("Object.freeze()")}}.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<pre class="brush: js">// Нові об'єкти є розширюваними.
-var empty = {};
-Object.isExtensible(empty); // === true
-
-// ...але це можна змінити.
-Object.preventExtensions(empty);
-Object.isExtensible(empty); // === false
-
-// Запечатані об'єкти є за визначенням нерозширюваними.
-var sealed = Object.seal({});
-Object.isExtensible(sealed); // === false
-
-// Заморожені об'єкти також за визначенням є нерозширюваними.
-var frozen = Object.freeze({});
-Object.isExtensible(frozen); // === false
-</pre>
-
-<h2 id="Примітки">Примітки</h2>
-
-<p>У ES5, якщо аргументом даного методу виступає не об'єкт (примітивне значення), це спричинить помилку {{jsxref("TypeError")}}. У ES2015 ж, якщо аргументом методу буде не об'єкт, він буде сприйнятий як звичайний нерозширюваний об'єкт, тобто, вихідним значенням буде <code>false</code>.</p>
-
-<pre class="brush: js">Object.isExtensible(1);
-// TypeError: 1 is not an object (код ES5)
-
-Object.isExtensible(1);
-// false (код ES2015)
-</pre>
-
-<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('ES5.1', '#sec-15.2.3.13', 'Object.isExtensible')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td>Початкове визначення. Реалізоване у JavaScript 1.8.5.</td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-object.isextensible', 'Object.isExtensible')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.isextensible', 'Object.isExtensible')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.Object.isExtensible")}}</p>
-</div>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Object.preventExtensions()")}}</li>
- <li>{{jsxref("Object.seal()")}}</li>
- <li>{{jsxref("Object.isSealed()")}}</li>
- <li>{{jsxref("Object.freeze()")}}</li>
- <li>{{jsxref("Object.isFrozen()")}}</li>
- <li>{{jsxref("Reflect.isExtensible()")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/isfrozen/index.html b/files/uk/web/javascript/reference/global_objects/object/isfrozen/index.html
deleted file mode 100644
index b693befb9a..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/isfrozen/index.html
+++ /dev/null
@@ -1,178 +0,0 @@
----
-title: Object.isFrozen()
-slug: Web/JavaScript/Reference/Global_Objects/Object/isFrozen
-tags:
- - ECMAScript 5
- - JavaScript
- - Об'єкт
- - метод
- - розширюваний
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/isFrozen
----
-<div>{{JSRef}}</div>
-
-<p>Метод <code><strong>Object.isFrozen()</strong></code> визначає, чи є об'єкт {{jsxref("Object.freeze()", "замороженим", "", 1)}}.</p>
-
-<div>{{EmbedInteractiveExample("pages/js/object-isfrozen.html")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><code>Object.isFrozen(<var>obj</var>)</code></pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>obj</code></dt>
- <dd>Об'єкт для перевірки.</dd>
-</dl>
-
-<h3 id="Повертає">Повертає</h3>
-
-<p>{{jsxref("Boolean", "Булеве значення")}}, що вказує, чи є наданий об'єкт замороженим.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Об'єкт є замороженим тільки тоді, коли він не є {{jsxref("Object.isExtensible()", "розширюваним", "", 1)}}, всі його властивості недоступні для налаштування, і всі його властивості-значення (тобто, властивості, які не є властивостями-аксесорами, що мають гетер або сетер) недоступні для запису.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<pre class="brush: js">// Новий об'єкт є розширюваним, отже, він не заморожений
-Object.isFrozen({}); // === false
-
-// Пустий об'єкт, котрий є нерозширюваним,
-// є порожньо замороженим.
-var vacuouslyFrozen = Object.preventExtensions({});
-Object.isFrozen(vacuouslyFrozen); // === true
-
-// Новий об'єкт з однією властивістю є також розширюваним,
-// отже, не заморожений.
-var oneProp = { p: 42 };
-Object.isFrozen(oneProp); // === false
-
-// Припинення розширювання об'єкту не робить його замороженим,
-// тому що властивість досі доступна
-// для налаштування (та запису).
-Object.preventExtensions(oneProp);
-Object.isFrozen(oneProp); // === false
-
-// ...але видалення цієї властивості робить об'єкт
-// порожньо замороженим.
-delete oneProp.p;
-Object.isFrozen(oneProp); // === true
-
-// Нерозширюваний об'єкт з властивістю, недоступною для запису,
-// але доступною для налаштування, не є замороженим.
-var nonWritable = { e: 'plep' };
-Object.preventExtensions(nonWritable);
-Object.defineProperty(nonWritable, 'e', {
-  writable: false
-}); // зробити властивість недоступною для запису
-Object.isFrozen(nonWritable); // === false
-
-// Якщо зробити цю властивість недоступною для налаштування,
-// тоді об'єкт буде замороженим.
-Object.defineProperty(nonWritable, 'e', {
-  configurable: false
-}); // зробити властивість недоступною для налаштування
-Object.isFrozen(nonWritable); // === true
-
-// Нерозширюваний об'єкт з властивістю, недоступною
-// для налаштування, але доступною для запису, також не є замороженим.
-var nonConfigurable = { release: 'the kraken!' };
-Object.preventExtensions(nonConfigurable);
-Object.defineProperty(nonConfigurable, 'release', {
-  configurable: false
-});
-Object.isFrozen(nonConfigurable); // === false
-
-// Якщо зробити цю властивість недоступною для запису,
-// тоді об'єкт буде заморожений.
-Object.defineProperty(nonConfigurable, 'release', {
-  writable: false
-});
-Object.isFrozen(nonConfigurable); // === true
-
-// Нерозширюваний об'єкт з властивістю-аксесором,
-// доступною для налаштування, не є замороженим.
-var accessor = { get food() { return 'ням'; } };
-Object.preventExtensions(accessor);
-Object.isFrozen(accessor); // === false
-
-// ...але якщо зробити цю властивість недоступною для налаштування,
-// тоді об'єкт буде замороженим.
-Object.defineProperty(accessor, 'food', {
-  configurable: false
-});
-Object.isFrozen(accessor); // === true
-
-// Але найпростіший спосіб зробити об'єкт замороженим -
-// це викликати на ньому метод Object.freeze.
-var frozen = { 1: 81 };
-Object.isFrozen(frozen); // === false
-Object.freeze(frozen);
-Object.isFrozen(frozen); // === true
-
-// За визначенням, заморожений об'єкт є нерозширюваним.
-Object.isExtensible(frozen); // === false
-
-// Також, за визначенням, заморожений об'єкт є запечатаним.
-Object.isSealed(frozen); // === true
-</pre>
-
-<h2 id="Примітки">Примітки</h2>
-
-<p>У ES5, якщо аргументом цього методу є не об'єкт (примітив), це спричинить {{jsxref("TypeError")}}. У ES2015 аргумент, що не є об'єктом, сприйматиметься як звичайний заморожений об'єкт, метод просто поверне <code>true</code>.</p>
-
-<pre class="brush: js">Object.isFrozen(1);
-// TypeError: 1 is not an object (код ES5)
-
-Object.isFrozen(1);
-// true (код ES2015)
-</pre>
-
-<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('ES5.1', '#sec-15.2.3.12', 'Object.isFrozen')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td>Початкове визначення. Реалізоване у JavaScript 1.8.5.</td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-object.isfrozen', 'Object.isFrozen')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.isfrozen', 'Object.isFrozen')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.Object.isFrozen")}}</p>
-</div>
-
-<h2 id="Дивіться_також">Дивіться також</h2>
-
-<ul>
- <li>{{jsxref("Object.freeze()")}}</li>
- <li>{{jsxref("Object.preventExtensions()")}}</li>
- <li>{{jsxref("Object.isExtensible()")}}</li>
- <li>{{jsxref("Object.seal()")}}</li>
- <li>{{jsxref("Object.isSealed()")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/isprototypeof/index.html b/files/uk/web/javascript/reference/global_objects/object/isprototypeof/index.html
deleted file mode 100644
index b5472b105d..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/isprototypeof/index.html
+++ /dev/null
@@ -1,125 +0,0 @@
----
-title: Object.prototype.isPrototypeOf()
-slug: Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf
-tags:
- - JavaScript
- - Об'єкт
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf
----
-<div>{{JSRef}}</div>
-
-<p>Метод <code><strong>isPrototypeOf()</strong></code> перевіряє, чи існує об'єкт у ланцюжку прототипів іншого об'єкта.</p>
-
-<div>{{EmbedInteractiveExample("pages/js/object-prototype-isprototypeof.html")}}</div>
-
-
-
-<div class="note">
-<p><code>isPrototypeOf()</code> відрізняється від оператора {{jsxref("Operators/instanceof", "instanceof")}}.У виразі "<code>object instanceof AFunction</code>" ланцюжок прототипів об'єкта <code>object</code> перевіряється на <code>AFunction.prototype</code>, а не на сам об'єкт <code>AFunction</code>.</p>
-</div>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><code><var>prototypeObj</var>.isPrototypeOf(<var>object</var>)</code></pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>object</code></dt>
- <dd>Об'єкт, чий ланцюжок прототипів перевірятиметься.</dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>{{jsxref("Boolean","Булеве значення")}}, що зазначає, чи присутній об'єкт, що викликав метод, у ланцюжку прототипів вказаного об'єкта.</p>
-
-<h3 id="Помилки_що_викидаються">Помилки, що викидаються</h3>
-
-<dl>
- <dt>{{jsxref("TypeError")}}</dt>
- <dd>Помилка {{jsxref("TypeError")}} викидається, якщо <code><var>prototypeObj</var></code> дорівнює undefined або null.</dd>
-</dl>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Метод <code>isPrototypeOf()</code> дозволяє перевірити, чи існує об'єкт у ланцюжку прототипів іншого об'єкта.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<p>Цей приклад демонструє, що <code>Baz.prototype</code>, <code>Bar.prototype</code>, <code>Foo.prototype</code> та <code>Object.prototype</code> присутні у ланцюжку прототипів об'єкта <code>baz</code>:</p>
-
-<pre class="brush: js">function Foo() {}
-function Bar() {}
-function Baz() {}
-
-Bar.prototype = Object.create(Foo.prototype);
-Baz.prototype = Object.create(Bar.prototype);
-
-var baz = new Baz();
-
-console.log(Baz.prototype.isPrototypeOf(baz)); // true
-console.log(Bar.prototype.isPrototypeOf(baz)); // true
-console.log(Foo.prototype.isPrototypeOf(baz)); // true
-console.log(Object.prototype.isPrototypeOf(baz)); // true
-</pre>
-
-<p>Метод <code>isPrototypeOf()</code>, разом з оператором {{jsxref("Operators/instanceof", "instanceof")}} можуть стати в нагоді, коли ви маєте код, який працює тільки з об'єктами, похідними від певного ланцюга прототипів, наприклад, щоб гарантувати, що певні методи або властивості будуть присутні на цьому об'єкті.</p>
-
-<p>Наприклад, перевіримо, чи походить об'єкт <code>baz</code> від <code>Foo.prototype</code>:</p>
-
-<pre class="brush: js">if (Foo.prototype.isPrototypeOf(baz)) {
-  // виконати безпечні дії
-}
-</pre>
-
-<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('ES3')}}</td>
- <td>{{Spec2('ES3')}}</td>
- <td>Початкове визначення.</td>
- </tr>
- <tr>
- <td>{{SpecName('ES5.1', '#sec-15.2.4.6', 'Object.prototype.isPrototypeOf')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-object.prototype.isprototypeof', 'Object.prototype.isPrototypeOf')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.prototype.isprototypeof', 'Object.prototype.isPrototypeOf')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.Object.isPrototypeOf")}}</p>
-</div>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Operators/instanceof", "instanceof")}}</li>
- <li>{{jsxref("Object.getPrototypeOf()")}}</li>
- <li>
- <div>{{jsxref("Object.setPrototypeOf()")}}</div>
- </li>
- <li>{{jsxref("Object.prototype.proto","Object.prototype.__proto__")}} </li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/issealed/index.html b/files/uk/web/javascript/reference/global_objects/object/issealed/index.html
deleted file mode 100644
index 5bb61b22c6..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/issealed/index.html
+++ /dev/null
@@ -1,139 +0,0 @@
----
-title: Object.isSealed()
-slug: Web/JavaScript/Reference/Global_Objects/Object/isSealed
-tags:
- - ECMAScript 5
- - JavaScript
- - Об'єкт
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/isSealed
----
-<div>{{JSRef}}</div>
-
-<p>Метод <code><strong>Object.isSealed()</strong></code> визначає, чи є об'єкт запечатаним.</p>
-
-<div>{{EmbedInteractiveExample("pages/js/object-issealed.html")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><code>Object.isSealed(<var>obj</var>)</code></pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>obj</code></dt>
- <dd>Об'єкт, який треба перевірити.</dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>{{jsxref("Boolean","Булеве значення")}}, що вказує, чи є об'єкт запечатаним.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Повертає <code>true</code>, якщо об'єкт запечатаний, інакше повертає <code>false</code>. Об'єкт вважається запечатаним, якщо він {{jsxref("Object.isExtensible", "нерозширюваний", "", 1)}} та якщо всі його властивості недоступні для налаштування і, відповідно, недоступні для видалення (але не обов'язково недоступні для запису).</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<pre class="brush: js">// За замовчуванням об'єкти не запечатані.
-var empty = {};
-Object.isSealed(empty); // === false
-
-// Якщо зробити порожній об'єкт нерозширюваним,
-// він стає порожньо запечатаним.
-Object.preventExtensions(empty);
-Object.isSealed(empty); // === true
-
-// Те саме стосується непорожнього об'єкта,
-// хіба що усі його властивості недоступні для налаштування.
-var hasProp = { fee: 'Крибле крабле бум' };
-Object.preventExtensions(hasProp);
-Object.isSealed(hasProp); // === false
-
-// Але зробимо їх усі недоступними для налаштування,
-// і об'єкт стає запечатаним.
-Object.defineProperty(hasProp, 'fee', {
-  configurable: false
-});
-Object.isSealed(hasProp); // === true
-
-// Звісно, найпростіший спосіб запечатати об'єкт -
-// це Object.seal.
-var sealed = {};
-Object.seal(sealed);
-Object.isSealed(sealed); // === true
-
-// Запечатаний об'єкт, за визначенням, нерозширюваний.
-Object.isExtensible(sealed); // === false
-
-// Запечатаний об'єкт може бути замороженим,
-// але це не обов'язково.
-Object.isFrozen(sealed); // === true
-// (усі властивості також недоступні для запису)
-
-var s2 = Object.seal({ p: 3 });
-Object.isFrozen(s2); // === false
-// ('p' досі доступна для запису)
-
-var s3 = Object.seal({ get p() { return 0; } });
-Object.isFrozen(s3); // === true
-// (для аксесорів має значення тільки доступність для налаштування)
-</pre>
-
-<h2 id="Примітки">Примітки</h2>
-
-<p>У ES5 якщо аргументом цього методу є не об'єкт (примітив), це спричинить {{jsxref("TypeError")}}. У ES2015 аргумент, що не є об'єктом, сприйматиметься як звичайний запечатаний об'єкт, метод просто поверне <code>true</code>.</p>
-
-<pre class="brush: js">Object.isSealed(1);
-// TypeError: 1 is not an object (код ES5)
-
-Object.isSealed(1);
-// true (код ES2015)
-</pre>
-
-<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('ES5.1', '#sec-15.2.3.11', 'Object.isSealed')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td>Початкове визначення. Реалізоване у JavaScript 1.8.5.</td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-object.issealed', 'Object.isSealed')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.issealed', 'Object.isSealed')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.Object.isSealed")}}</p>
-</div>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Object.seal()")}}</li>
- <li>{{jsxref("Object.preventExtensions()")}}</li>
- <li>{{jsxref("Object.isExtensible()")}}</li>
- <li>{{jsxref("Object.freeze()")}}</li>
- <li>{{jsxref("Object.isFrozen()")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/keys/index.html b/files/uk/web/javascript/reference/global_objects/object/keys/index.html
deleted file mode 100644
index 796209d575..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/keys/index.html
+++ /dev/null
@@ -1,171 +0,0 @@
----
-title: Object.keys()
-slug: Web/JavaScript/Reference/Global_Objects/Object/keys
-tags:
- - ECMAScript5
- - JavaScript
- - Method
- - Object
- - Об'єкт
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/keys
----
-<div>{{JSRef}}</div>
-
-<p>Метод <code><strong>Object.keys()</strong></code> повертає масив <strong>імен</strong> особистих перелічуваних властивостей переданого об'єкта в тому самому порядку, що його повертає звичайний цикл.</p>
-
-<p>{{EmbedInteractiveExample("pages/js/object-keys.html")}}</p>
-
-<div class="hidden">
-<p>The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> and send us a pull request.</p>
-</div>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><code>Object.keys(<var>obj</var>)</code></pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>obj</code></dt>
- <dd>Об'єкт, перелік властивостей якого треба отримати.</dd>
-</dl>
-
-<h3 id="Вертає">Вертає</h3>
-
-<p>Масив рядків, що передають імена всіх перелічуваних властивостей переданого об'єкта.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p><code>Object.keys()</code> повертає масив рядків, що передають імена перелічуваних властивостей, які належать безпосередньо об'єктові <code>obj</code>. Порядок отриманих властивостей збігається із тим, що його забезпечує перебір властивостей вручну за допомогою циклу.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<pre class="brush: js">// простий масив
-var arr = ['а', 'б', 'в'];
-console.log(Object.keys(arr)); // виводить ['0', '1', '2']
-
-// масив як об'єкт
-var obj = { 0: 'а', 1: 'б', 2: 'в' };
-console.log(Object.keys(obj)); // виводить ['0', '1', '2']
-
-// масив як об'єкт з випадковим порядком ключів
-var anObj = { 100: 'а', 2: 'б', 7: 'в' };
-console.log(Object.keys(anObj)); // виводить ['2', '7', '100']
-
-// getFoo є неперелічуваною властивістю
-var myObj = Object.create({}, {
- getFoo: {
- value: function () { return this.foo; }
- }
-});
-myObj.foo = 1;
-console.log(Object.keys(myObj)); // виводить ['foo']</pre>
-
-<p>Якщо вам потрібні усі властивості, навіть неперелічувані, зверніть увагу на <code>{{jsxref("Object.getOwnPropertyNames()")}}</code>.</p>
-
-<h2 id="Зауваги">Зауваги</h2>
-
-<p>У ES5 метод викидає {{jsxref("Global_Objects/TypeError", "TypeError")}}, якщо арґумент не є об'єктом (а натомість є {{glossary("Primitive", "простою величиною")}}). Водночас у ES2015 арґумент, що належить до простого типу даних, буде перетворено на об'єкт.</p>
-
-<pre class="brush: js">Object.keys('foo');
-// TypeError: "foo" is not an object (код ES5)
-
-Object.keys('foo');
-// ["0", "1", "2"] (код ES2015)
-</pre>
-
-<h2 id="Запасний_варіант_поліфіл">Запасний варіант (поліфіл)</h2>
-
-<p>Для старіших середовищ, де метод <code>Object.keys()</code> відсутній, можна забезпечити запасний варіант, скориставшись таким кодом:</p>
-
-<pre class="brush: js">// З https://developer.mozilla.org/uk/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
-if (!Object.keys) {
- Object.keys = (function() {
- 'use strict';
- var hasOwnProperty = Object.prototype.hasOwnProperty,
- hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'),
- dontEnums = [
- 'toString',
- 'toLocaleString',
- 'valueOf',
- 'hasOwnProperty',
- 'isPrototypeOf',
- 'propertyIsEnumerable',
- 'constructor'
- ],
- dontEnumsLength = dontEnums.length;
-
- return function(obj) {
- if (typeof obj !== 'function' &amp;&amp; (typeof obj !== 'object' || obj === null)) {
- throw new TypeError('Object.keys called on non-object');
- }
-
- var result = [], prop, i;
-
- for (prop in obj) {
- if (hasOwnProperty.call(obj, prop)) {
- result.push(prop);
- }
- }
-
- if (hasDontEnumBug) {
- for (i = 0; i &lt; dontEnumsLength; i++) {
- if (hasOwnProperty.call(obj, dontEnums[i])) {
- result.push(dontEnums[i]);
- }
- }
- }
- return result;
- };
- }());
-}
-</pre>
-
-<p>Зауважте, що наведений код у IE7 (а також, можливо, у IE8) повертає також неперелічувані властивості для об'єктів, що їх отримано з іншого вікна.</p>
-
-<p>Простий запасний варіант для переглядача можна знайти в статті <a href="http://tokenposts.blogspot.com.au/2012/04/javascript-objectkeys-browser.html">Javascript - Object.keys Browser Compatibility</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('ES5.1', '#sec-15.2.3.14', 'Object.keys')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td>Первинне визначення. Реалізовано у JavaScript 1.8.5.</td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-object.keys', 'Object.keys')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.keys', 'Object.keys')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Підтримка_веб-переглядачами">Підтримка веб-переглядачами</h2>
-
-<div class="hidden">Таблиця сумісності на цій сторінці створена зі структурованих даних. Якщо ви хочете долучитися до розробки цих даних, пропонуйте нам свої pull request до репозиторію <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div>
-
-<p>{{Compat("javascript.builtins.Object.keys")}}</p>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li><a href="/uk/docs/Web/JavaScript/Перелічуваність_та_належність_властивостей">Перелічуваність та належність властивостей</a></li>
- <li>{{jsxref("Object.prototype.propertyIsEnumerable()")}}</li>
- <li>{{jsxref("Object.create()")}}</li>
- <li>{{jsxref("Object.getOwnPropertyNames()")}}</li>
- <li>{{jsxref("Object.values()")}}</li>
- <li>{{jsxref("Object.entries()")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/object/index.html b/files/uk/web/javascript/reference/global_objects/object/object/index.html
deleted file mode 100644
index 223a18bbb8..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/object/index.html
+++ /dev/null
@@ -1,84 +0,0 @@
----
-title: Конструктор Object()
-slug: Web/JavaScript/Reference/Global_Objects/Object/Object
-tags:
- - JavaScript
- - Довідка
- - Конструктор
- - Об'єкт
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/Object
----
-<div>{{JSRef}}</div>
-
-<p><strong>Конструктор</strong> <strong><code>Object</code></strong> створює об'єктну обгортку для наданого значення.</p>
-
-<ul>
- <li>Якщо значенням є {{jsxref("null")}} або {{jsxref("undefined")}}, це створить та поверне порожній об'єкт.</li>
- <li>Інакше, буде повернений об'єкт того типу, який відповідає наданому значенню.</li>
- <li>Якщо значення вже є об'єктом, буде повернене це значення.</li>
-</ul>
-
-<p>Викликаний не у контексті конструктора, <code>Object</code> поводиться ідентично до <code>new Object()</code>.</p>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox notranslate">new Object()
-new Object(<var>value</var>)</pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>value</code></dt>
- <dd>Будь-яке значення.</dd>
-</dl>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="Створення_нового_обєкта">Створення нового об'єкта</h3>
-
-<pre class="brush: js notranslate">let o = new Object()
-o.foo = 42
-
-console.log(o)
-// Object { foo: 42 }</pre>
-
-<h3 id="Використання_Object_з_типами_undefined_та_null">Використання <code>Object</code> з типами <code>undefined</code> та <code>null</code></h3>
-
-<p>Наступні приклади зберігають порожній об'єкт <code>Object</code> у <code>o</code>:</p>
-
-<pre class="brush: js notranslate">let o = new Object()
-</pre>
-
-<pre class="brush: js notranslate">let o = new Object(undefined)
-</pre>
-
-<pre class="brush: js notranslate">let o = new Object(null)</pre>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Специфікація</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object-constructor', 'Object constructor')}}</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div>
-<div class="hidden">The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</div>
-
-<p>{{Compat("javascript.builtins.Object.Object")}}</p>
-</div>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li><a href="/uk/docs/Web/JavaScript/Reference/Operators/Ініціалізація_об’єктів">Ініціалізатор об'єкта</a></li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/preventextensions/index.html b/files/uk/web/javascript/reference/global_objects/object/preventextensions/index.html
deleted file mode 100644
index 3fe25fb9b0..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/preventextensions/index.html
+++ /dev/null
@@ -1,139 +0,0 @@
----
-title: Object.preventExtensions()
-slug: Web/JavaScript/Reference/Global_Objects/Object/preventExtensions
-tags:
- - ECMAScript5
- - JavaScript
- - Object
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/preventExtensions
----
-<div>{{JSRef}}</div>
-
-<p><code><strong>Object.preventExtensions()</strong></code> метод позбавляє можливості додавати нові властивості до об'єкта (тобто, розширювати об'єкт у подальшому).</p>
-
-<div>{{EmbedInteractiveExample("pages/js/object-preventextensions.html")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><code>Object.preventExtensions(<var>obj</var>)</code></pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>obj</code></dt>
- <dd>Об'єкт, котрий має стати нерозширюваним.</dd>
-</dl>
-
-<h3 id="Вихідне_значення">Вихідне значення</h3>
-
-<p>Об'єкт, що робиться нерозширюваним.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Об'єкт вважається розширюваним, якщо до нього можуть бути додані нові властивості. <code>Object.preventExtensions()</code> робить об'єкт нерозширюваним, тобто таким, який уже ніколи не зможе містити інших властивостей, окрім тих, котрі він мав на момент застосування до нього даного методу. Зверніть увагу на те, що властивості нерозширюваного об'єкта все ж можна <em>видаляти</em>. Спроба ж додати нові властивості до нерозширюваного об'єкта не увінчається успіхом: або властивості просто не будуть додані без жодних помилок, або ж згенерується помилка типу {{jsxref("TypeError")}} (найчастіше, але не виключно, у {{jsxref("Strict_mode", "строгому режимі", "", 1)}}).</p>
-
-<p><code>Object.preventExtensions()</code> має вплив лише на додавання особистих властивостей об'єкта. Властивості можуть бути додані до прототипу об'єкта.<br>
- <br>
- Цей метод робить <code>[[prototype]]</code> цільового об'єкта незмінним; будь-яке перевизначення <code>[[prototype]]</code> спричинить помилку <code>TypeError</code>. Ця поведінка є специфічною для внутрішньої властивості <code>[[prototype]]</code>, інші властивості цільового об'єкта залишаються змінними.</p>
-
-<p>Як тільки об'єкт стає нерозширюваним, неможливо зробити його знову розширюваним.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<pre class="brush: js">// Object.preventExtensions повертає об'єкт,
-// який робиться нерозширюваним.
-var obj = {};
-var obj2 = Object.preventExtensions(obj);
-obj === obj2; // true
-
-// За замовчуванням усі об'єкти є розширюваними.
-var empty = {};
-Object.isExtensible(empty); // === true
-
-// ...але це можна змінити.
-Object.preventExtensions(empty);
-Object.isExtensible(empty); // === false
-
-// Object.defineProperty викине помилку, якщо спробувати додати
-// нову вдастивість до нерозширюваного об'єкта.
-var nonExtensible = { removable: true };
-Object.preventExtensions(nonExtensible);
-Object.defineProperty(nonExtensible, 'new', {
- value: 8675309
-}); // викине TypeError
-
-// У строгому режимі спроба додати нові властивості
-// до нерозширюваного об'єкта спричиняє помилку TypeError.
-function fail() {
- 'use strict';
- // викида TypeError
- nonExtensible.newProperty = 'FAIL';
-}
-fail();
-</pre>
-
-<p>Прототип нерозширюваного об'єкта є незмінним:</p>
-
-<pre class="brush: js">var fixed = Object.preventExtensions({});
-// викине 'TypeError'.
-fixed.__proto__ = { oh: 'hai' };</pre>
-
-<h2 id="Примітки">Примітки</h2>
-
-<p>У ES5, якщо аргументом даного методу виступає не об'єкт (примітив), це спричинить помилку {{jsxref("TypeError")}}. У ES2015 ж, якщо аргументом методу буде не об'єкт, він буде сприйнятий як звичайний нерозширюваний об'єкт, і буде просто повернений.</p>
-
-<pre class="brush: js">Object.preventExtensions(1);
-// TypeError: 1 is not an object (код ES5)
-
-Object.preventExtensions(1);
-// 1 (код ES2015)
-</pre>
-
-<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('ES5.1', '#sec-15.2.3.10', 'Object.preventExtensions')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td>Початкове визначення. Реалізоване у JavaScript 1.8.5.</td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-object.preventextensions', 'Object.preventExtensions')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.preventextensions', 'Object.preventExtensions')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.Object.preventExtensions")}}</p>
-</div>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Object.isExtensible()")}}</li>
- <li>{{jsxref("Object.seal()")}}</li>
- <li>{{jsxref("Object.isSealed()")}}</li>
- <li>{{jsxref("Object.freeze()")}}</li>
- <li>{{jsxref("Object.isFrozen()")}}</li>
- <li>{{jsxref("Reflect.preventExtensions()")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/propertyisenumerable/index.html b/files/uk/web/javascript/reference/global_objects/object/propertyisenumerable/index.html
deleted file mode 100644
index b7eafe88f0..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/propertyisenumerable/index.html
+++ /dev/null
@@ -1,149 +0,0 @@
----
-title: Object.prototype.propertyIsEnumerable()
-slug: Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable
-tags:
- - JavaScript
- - Об'єкт
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable
----
-<div>{{JSRef}}</div>
-
-<p>Метод <code><strong>propertyIsEnumerable()</strong></code> повертає булеве значення, що позначає, чи є вказана властивість перелічуваною.</p>
-
-<div>{{EmbedInteractiveExample("pages/js/object-prototype-propertyisenumerable.html")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><code><var>obj</var>.propertyIsEnumerable(<var>prop</var>)</code></pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>prop</code></dt>
- <dd>Ім'я властивості, яку необхідно перевірити.</dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>{{jsxref("Boolean","Булеве значення")}}, що позначає, чи є вказана властивість перелічуваною.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Кожен об'єкт має метод <code>propertyIsEnumerable</code>. Цей метод може визначити, чи може вказана властивість об'єкта бути перелічена циклом {{jsxref("Statements/for...in", "for...in")}}, за винятком властивостей, успадкованих через ланцюжок прототипів. Якщо об'єкт не має вказаної властивості, метод поверне <code>false</code>.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="Базове_використання_propertyIsEnumerable">Базове використання <code>propertyIsEnumerable</code></h3>
-
-<p>Наступний приклад демонструє використання <code>propertyIsEnumerable</code> на об'єктах та масивах:</p>
-
-<pre class="brush: js">var o = {};
-var a = [];
-o.prop = 'перелічувана';
-a[0] = 'перелічувана';
-
-o.propertyIsEnumerable('prop'); // повертає true
-a.propertyIsEnumerable(0); // повертає true
-</pre>
-
-<h3 id="Визначені_користувачем_обєкти_проти_вбудованих_обєктів">Визначені користувачем об'єкти проти вбудованих об'єктів</h3>
-
-<p>Наступний приклад демонструє перелічуваність визначених користувачем властивостей у порівнянні з вбудованими:</p>
-
-<pre class="brush: js">var a = ['перелічувана'];
-
-a.propertyIsEnumerable(0); // повертає true
-a.propertyIsEnumerable('length'); // повертає false
-
-Math.propertyIsEnumerable('random'); // повертає false
-this.propertyIsEnumerable('Math'); // повертає false
-</pre>
-
-<h3 id="Прямі_властивості_проти_успадкованих">Прямі властивості проти успадкованих</h3>
-
-<pre class="brush: js">var a = [];
-a.propertyIsEnumerable('constructor'); // повертає false
-
-function firstConstructor() {
- this.property = 'не перелічувана';
-}
-
-firstConstructor.prototype.firstMethod = function() {};
-
-function secondConstructor() {
- this.method = function method() { return 'перелічувана'; };
-}
-
-secondConstructor.prototype = new firstConstructor;
-secondConstructor.prototype.constructor = secondConstructor;
-
-var o = new secondConstructor();
-o.arbitraryProperty = 'перелічувана';
-
-o.propertyIsEnumerable('arbitraryProperty'); // повертає true
-o.propertyIsEnumerable('method'); // повертає true
-o.propertyIsEnumerable('property'); // повертає false
-
-o.property = 'перелічувана';
-
-o.propertyIsEnumerable('property'); // повертає true
-
-// Наступні повертають false, оскільки вони присутні на прототипі, який
-// propertyIsEnumerable не враховує (хоча останні дві
-// перебираються циклом for-in)
-o.propertyIsEnumerable('prototype'); // повертає false (згідно з JS 1.8.1/FF3.6)
-o.propertyIsEnumerable('constructor'); // повертає false
-o.propertyIsEnumerable('firstMethod'); // повертає false
-</pre>
-
-<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('ES3')}}</td>
- <td>{{Spec2('ES3')}}</td>
- <td>Початкове визначення</td>
- </tr>
- <tr>
- <td>{{SpecName('ES5.1', '#sec-15.2.4.7', 'Object.prototype.propertyIsEnumerable')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-object.prototype.propertyisenumerable', 'Object.prototype.propertyIsEnumerable')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.prototype.propertyisenumerable', 'Object.prototype.propertyIsEnumerable')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.Object.propertyIsEnumerable")}}</p>
-</div>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li><a href="/uk/docs/Web/JavaScript/Перелічуваність_та_належність_властивостей">Перелічуваність та належність властивостей</a></li>
- <li>{{jsxref("Statements/for...in", "for...in")}}</li>
- <li>{{jsxref("Object.keys()")}}</li>
- <li>{{jsxref("Object.defineProperty()")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/proto/index.html b/files/uk/web/javascript/reference/global_objects/object/proto/index.html
deleted file mode 100644
index 969759158b..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/proto/index.html
+++ /dev/null
@@ -1,127 +0,0 @@
----
-title: Object.prototype.__proto__
-slug: Web/JavaScript/Reference/Global_Objects/Object/proto
-tags:
- - ECMAScript 2015
- - JavaScript
- - Object
- - Властивість
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/proto
----
-<div>{{JSRef}}{{Deprecated_header}}
-<div class="blockIndicator warning">
-<p><strong>Застереження:</strong> Зміна властивості об'єкта <code>[[Prototype]]</code>, за природою того, як сучасні рушії JavaScript оптимізують доступ до властивостей, є дуже повільною операцією в <strong><em>кожному</em></strong> переглядачі та рушії JavaScript. Ефект для продуктивності від зміни спадкування є витонченим та обширним, і не обмежується лише часом, витраченим на команду  <code>obj.__proto__ = ...</code>, але може поширюватися на <strong><em>будь-який</em></strong> код, що має доступ до <strong><em>будь-якого</em></strong> об'єкта, чия властивість <code>[[Prototype]]</code> була змінена. Якщо ви дбаєте про продуктивність, вам варто уникати присвоювати  <code>[[Prototype]]</code> об'єкта. Замість цього створіть новий об'єкт з бажаною властивістю <code>[[Prototype]]</code>, використовуючи {{JSxRef("Object.create()")}}.</p>
-</div>
-
-<div class="blockIndicator warning">
-<p><strong>Застереження: </strong>В той час, як властивість <code>Object.prototype.__proto__</code> підтримується більшістю нинішніх переглядачів, її існування та точна поведінка були стандартизовані у специфікації ECMAScript 2015 тільки в якості legacy-функціональності для сумісності з веб-переглядачами. Для кращої підтримки рекомендовано натомість використовувати {{JSxRef("Object.getPrototypeOf()")}}.</p>
-</div>
-</div>
-
-<p>Властивість {{JSxRef("Object.prototype")}} <code>__proto__</code> - це властивість-аксесор (функція-гетер та функція-сетер), яка відкриває внутрішню властивість <code>[[Prototype]]</code> (або об'єкт, або {{JSxRef("Global_Objects/null", "null")}}) об'єкта, через який до неї звертаються.</p>
-
-<p>Використання <code>__proto__</code> є суперечливим і не заохочується. Ця властивість ніколи не включалась у специфікації мови EcmaScript, але сучасні переглядачі вирішили все одно її реалізувати. Тільки останнім часом властивість <code>__proto__</code> була стандартизована у специфікації мови ECMAScript 2015 для сумісності веб-переглядачів, і буде підтримуватись у майбутньому. Її використання не рекомендоване на користь  {{JSxRef("Object.getPrototypeOf")}}/{{JSxRef("Reflect.getPrototypeOf")}} та {{JSxRef("Object.setPrototypeOf")}}/{{JSxRef("Reflect.setPrototypeOf")}} (хоча, все одно, присвоєння <code>[[Prototype]]</code> об'єкта є повільною операцією, якої бажано уникати, якщо швидкодія має значення).</p>
-
-<p>Властивість <code>__proto__</code> також може бути використана при визначенні об'єктного літералу, щоб встановити властивість об'єкта <code>[[Prototype]]</code> при створенні, як альтернатива {{JSxRef("Object.create()")}}. Дивіться: <a href="/uk/docs/Web/JavaScript/Reference/Operators/Object_initializer">Ініціалізація об'єктів / синтаксис літералів</a>.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Функція-гетер <code>__proto__</code> відкриває значення внутрішньої властивості об'єкта <code>[[Prototype]]</code>. Для об'єктів, що були створені об'єктним літералом, ця величина дорівнює {{JSxRef("Object.prototype")}}. Для об'єктів, створених літералами масивів, це значення дорівнює {{JSxRef("Array.prototype")}}. Для функцій воно дорівнює {{JSxRef("Function.prototype")}}. Для об'єктів, створених через <code>new fun</code>, де <code>fun</code> є однією з вбудованих функцій-конструкторів JavaScript ({{JSxRef("Array")}}, {{JSxRef("Boolean")}}, {{JSxRef("Date")}}, {{JSxRef("Number")}}, {{JSxRef("Object")}}, {{JSxRef("String")}} і так далі — в тому числі нові конструктори, додані з розвитком JavaScript), це значення завжди дорівнює <code>fun.prototype</code>. Для об'єктів, створених за допомогою <code>new fun</code>, де <code>fun</code> - це функція, визначена у скрипті, це значення дорівнює значенню <code>fun.prototype</code>. (Якщо тільки конструктор не повернув явно інший об'єкт, або значення <code>fun.prototype</code> не було переприсвоєне після створення екземпляра).</p>
-
-<p>Сетер <code>__proto__</code> дозволяє змінювати властивість об'єкта <code>[[Prototype]]</code>. Об'єкт має бути розширюваним згідно з {{JSxRef("Object.isExtensible()")}}: якщо це не так, викидається {{JSxRef("Global_Objects/TypeError", "TypeError")}}. Надана величина має бути об'єктом або {{JSxRef("Global_Objects/null", "null")}}. Передача будь-якого іншого значення не дасть ніякого результату.</p>
-
-<p>Щоб зрозуміти, як прототипи використовуються для наслідування, дивіться статтю посібника <a href="/uk/docs/Web/JavaScript/Inheritance_and_the_prototype_chain">Наслідування та ланцюжок прототипів</a>.</p>
-
-<p>Властивість <code>__proto__</code> - це проста властивість-аксесор {{JSxRef("Object.prototype")}}, що складається з функції-гетера та функції-сетера. Звернення до властивості <code>__proto__</code>, яке зрештою звертається до {{JSxRef("Object.prototype")}}, знайде цю властивість, але звернення, яке не звертається до {{JSxRef("Object.prototype")}}, не знайде її. Якщо інша властивість <code>__proto__</code> буде знайдена до того, як відбудеться звернення до {{JSxRef("Object.prototype")}}, то ця властивість сховає знайдену у {{JSxRef("Object.prototype")}}.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="Використання___proto__">Використання __proto__</h3>
-
-<pre class="brush: js notranslate">function Circle() {};
-const shape = {};
-const circle = new Circle();
-
-// Присвоїти прототип об'єкта.
-// НЕ РЕКОМЕНДОВАНО. Цей код написаний лише для прикладу. НЕ РОБІТЬ ЦЬОГО у справжньому коді.
-shape.__proto__ = circle;
-
-// Отримати прототип об'єкта
-console.log(shape.__proto__ === circle); // true
-
-const ShapeA = function () {};
-const ShapeB = {
- a() {
- console.log('aaa');
- }
-};
-console.log(ShapeA.prototype.__proto__ = ShapeB);
-
-const shapea = new ShapeA();
-shapea.a(); // aaa
-console.log(ShapeA.prototype === shapea.__proto__); // true
-
-// або
-const ShapeC = function () {};
-const ShapeD = {
- a() {
- console.log('a');
- }
-};
-
-const shapeC = new ShapeC();
-shapeC.__proto__ = ShapeD;
-shapeC.a(); // a
-console.log(ShapeC.prototype === shapeC.__proto__); // false
-
-// або
-function Test() {};
-Test.prototype.myname = function () {
- console.log('myname');
-};
-
-const a = new Test();
-console.log(a.__proto__ === Test.prototype); // true
-a.myname(); // myname
-
-// або
-const fn = function () {};
-fn.prototype.myname = function () {
- console.log('myname');
-};
-
-var obj = {
- __proto__: fn.prototype
-};
-
-obj.myname(); // myname
-</pre>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Специфікації</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-additional-properties-of-the-object.prototype-object', 'Object.prototype.__proto__')}}</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-
-
-<p>{{Compat("javascript.builtins.Object.proto")}}</p>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{JSxRef("Object.prototype.isPrototypeOf()")}}</li>
- <li>{{JSxRef("Object.getPrototypeOf()")}}</li>
- <li>{{JSxRef("Object.setPrototypeOf()")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/seal/index.html b/files/uk/web/javascript/reference/global_objects/object/seal/index.html
deleted file mode 100644
index 568686ede7..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/seal/index.html
+++ /dev/null
@@ -1,151 +0,0 @@
----
-title: Object.seal()
-slug: Web/JavaScript/Reference/Global_Objects/Object/seal
-tags:
- - ECMAScript5
- - JavaScript
- - Об'єкт
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/seal
----
-<div>{{JSRef}}</div>
-
-<p>Метод <code><strong>Object.seal()</strong></code> запечатує об'єкт, запобігаючи створенню нових властивостей та відмічаючи усі існуючі властивості як недоступні для налаштування. Значення існуючих властивостей можна і надалі змінювати, якщо вони доступні для запису.</p>
-
-<div>{{EmbedInteractiveExample("pages/js/object-prototype-seal.html")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox">Object.seal(<var>obj</var>)</pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code><var>obj</var></code></dt>
- <dd>Об'єкт, який має бути запечатаний.</dd>
-</dl>
-
-<h3 id="Повертає">Повертає</h3>
-
-<p>Об'єкт, який запечатується.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>За замовчуванням, об'єкти є {{jsxref("Object.isExtensible()", "розширюваними", "", 1)}} (до них можна додати нові властивості). Запечатування об'єкту запобігає створенню нових властивостей і робить усі існуючі властивосні недоступними для налаштування. Це робить набір властивостей об'єкта зафіксованим і незмінним. Перетворення всіх властивостей на недоступні для налаштування також запобігає зміні властивостей-значень на властивості-аксесори, та навпаки, але не запобігає зміні значеннь властивостей. Спроби додати чи видалити властивість з запечатаного об'єкта, або перетворити властивість-значення на властивість-аксесор, не спрацюють, або непомітно, або з викиданням {{jsxref("TypeError")}} (найчастіше, але не виключно, у {{jsxref("Strict_mode", "строгому режимі", "", 1)}})</p>
-
-<p>Ланцюг прототипів залишається незмінним. Проте, властивість {{jsxref("Object.proto", "__proto__")}} {{deprecated_inline}} також запечатується.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<pre class="brush: js">var obj = {
- prop: function() {},
- foo: 'му'
-};
-
-// Нові властивості можуть бути додані, існуючі властивості
-// можуть бути змінені або видалені.
-obj.foo = 'мяв';
-obj.lumpy = 'ква';
-delete obj.prop;
-
-var o = Object.seal(obj);
-
-o === obj; // true
-Object.isSealed(obj); // === true
-
-// На запечатаному об'єкті можна змінювати значення властивостей
-obj.foo = 'кря';
-
-// Але не можна перетворити властивості-значення на властивості-аксесори,
-// і навпаки.
-Object.defineProperty(obj, 'foo', {
- get: function() { return 'g'; }
-}); // викидає TypeError
-
-// Тепер будь-які спроби змін в об'єкті, окрім змін властивостей,
-// не працюватимуть.
-obj.quaxxor = 'весела качка';
-// непомітно не додасть властивість
-delete obj.foo;
-// непомітно не видалить властивість
-
-// ...а у строгому режимі такі спроби
-// викидатимуть помилки TypeError.
-function fail() {
- 'use strict';
- delete obj.foo; // викидає TypeError
- obj.sparky = 'гав'; // викидає TypeError
-}
-fail();
-
-// Спроби додавання властивостей за допомогою
-// Object.defineProperty також викидатимуть помилки.
-Object.defineProperty(obj, 'ohai', {
- value: 17
-}); // викидає TypeError
-Object.defineProperty(obj, 'foo', {
- value: 'рох'
-}); // змінює значення існуючої властивості
-</pre>
-
-<h2 id="Примітки">Примітки</h2>
-
-<p>У ES5, якщо аргументом цього методу є не об'єкт (примітив), це спричинить {{jsxref("TypeError")}}. У ES2015 аргумент, що не є об'єктом, сприйматиметься як звичайний запечатаний об'єкт, і буде просто повернений.</p>
-
-<pre class="brush: js">Object.seal(1);
-// TypeError: 1 is not an object (код ES5)
-
-Object.seal(1);
-// 1 (код ES2015)
-</pre>
-
-<h3 id="Порівняння_з_Object.freeze">Порівняння з <code>Object.freeze()</code></h3>
-
-<p>Існуючі властивості об'єктів, заморожених методом {{jsxref("Object.freeze()")}}, стають незмінними. Властивості об'єкта, запечатаного методом <code>Object.seal()</code>, надалі можуть бути зміненні.</p>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Специфікації</th>
- <th scope="col">Статус</th>
- <th scope="col">Коментар</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ES5.1', '#sec-15.2.3.8', 'Object.seal')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td>Початкове визначення. Реалізоване у JavaScript 1.8.5.</td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-object.seal', 'Object.seal')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.seal', 'Object.seal')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-
-
-<p>{{Compat("javascript.builtins.Object.seal")}}</p>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Object.isSealed()")}}</li>
- <li>{{jsxref("Object.preventExtensions()")}}</li>
- <li>{{jsxref("Object.isExtensible()")}}</li>
- <li>{{jsxref("Object.freeze()")}}</li>
- <li>{{jsxref("Object.isFrozen()")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/setprototypeof/index.html b/files/uk/web/javascript/reference/global_objects/object/setprototypeof/index.html
deleted file mode 100644
index 0e052f3bb5..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/setprototypeof/index.html
+++ /dev/null
@@ -1,220 +0,0 @@
----
-title: Object.setPrototypeOf()
-slug: Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf
-tags:
- - ECMAScript 2015
- - JavaScript
- - Об'єкт
- - метод
- - прототип
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf
----
-<div>{{JSRef}}</div>
-
-<p>Метод <code><strong>Object.setPrototypeOf()</strong></code> присвоює прототипу (тобто, внутрішній властивості <code>[[Prototype]]</code>) вказаного об'єкта інший об'єкт або {{jsxref("null")}}.</p>
-
-<div class="warning">
-<p><strong>Застереження:</strong> Зміна властивості об'єкта <code>[[Prototype]]</code> за природою того, <a href="https://mathiasbynens.be/notes/prototypes">як сучасні рушії JavaScript оптимізують доступ до властивостей</a>, є дуже повільною операцією у кожному переглядачі та рушії JavaScript. До того ж, ефект від зміни наслідування є неочевидним та обширним, і не обмежується лише часом, витраченим на інструкцію <code>Object.setPrototypeOf(...)</code>, а може стосуватися <strong><em>будь-якого</em></strong> коду, що звертається до будь-якого об'єкта, чия властивість <code>[[Prototype]]</code> була змінена.</p>
-
-<p>Оскільки ця функціональність є частиною мови, тягар її ефективної (в ідеалі) реалізації досі лежить на розробниках рушіїв. Поки розробники рушіїв не вирішать цю проблему, якщо вам важлива продуктивність, вам варто уникати присвоювати <code>[[Prototype]]</code> об'єкта. Замість цього, створіть новий об'єкт з бажаним значенням <code>[[Prototype]]</code>, використовуючи {{jsxref("Object.create()")}}.</p>
-</div>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><code>Object.setPrototypeOf(<var>obj</var>, <var>prototype</var>)</code></pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>obj</code></dt>
- <dd>Об'єкт, прототипу якого треба присвоїти значення.</dd>
- <dt><code>prototype</code></dt>
- <dd>Новий прототип об'єкта (об'єкт або {{jsxref("null")}}).</dd>
-</dl>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>Вказаний об'єкт.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Викидає виняток {{jsxref("TypeError")}}, якщо об'єкт, чия властивість <code>[[Prototype]]</code> змінюється, є нерозширюваним згідно з {{jsxref("Object.isExtensible()")}}. Не робить нічого, якщо параметр <code>prototype</code> не є об'єктом або {{jsxref("null")}} (число, рядок, булеве значення або {{jsxref("undefined")}}). Інакше, цей метод змінює значення <code>[[Prototype]]</code> об'єкта <code>obj</code> на нове значення.</p>
-
-<p>Метод <code>Object.setPrototypeOf()</code> присутній у специфікації ECMAScript 2015. Він, загалом, вважається правильним способом встановлювати прототип об'єкта, у порівнянні з більш суперечливою властивістю {{jsxref("Object.prototype.proto","Object.prototype.__proto__")}}.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<pre class="brush: js">var dict = Object.setPrototypeOf({}, null);
-</pre>
-
-<h2 id="Поліфіл">Поліфіл</h2>
-
-<p>Використовуючи більш стару властивість {{jsxref("Object.prototype.proto","Object.prototype.__proto__")}}, ми легко можемо визначити метод <code>Object.setPrototypeOf</code>, якщо він досі не є доступним:</p>
-
-<pre class="brush: js">if (!Object.setPrototypeOf) {
- // Працює лише у Chrome та FireFox, не працює у IE:
- Object.prototype.setPrototypeOf = function(obj, proto) {
- if(obj.__proto__) {
- obj.__proto__ = proto;
- return obj;
- } else {
- // Якщо ви хочете повернути прототип Object.create(null):
- var Fn = function() {
- for (var key in obj) {
- Object.defineProperty(this, key, {
- value: obj[key],
- });
- }
- };
- Fn.prototype = proto;
- return new Fn();
- }
- }
-}</pre>
-
-<h2 id="Додавання_ланцюжків_прототипів">Додавання ланцюжків прототипів</h2>
-
-<p>Комбінація <code>Object.getPrototypeOf()</code> та {{jsxref("Object.proto", "Object.prototype.__proto__")}} дозволяє додавати цілі ланцюжки прототипів до нового прототипу:</p>
-
-<pre class="brush: js">/**
-*** Object.appendChain(@object, @prototype)
-*
-* Додає перший невбудований прототип з ланцюжка до нового прототипу.
-* Повертає @object (якщо це була проста величина, вона буде перетворена на об'єкт).
-*
-*** Object.appendChain(@object [, "@arg_name_1", "@arg_name_2", "@arg_name_3", "..."], "@function_body")
-*** Object.appendChain(@object [, "@arg_name_1, @arg_name_2, @arg_name_3, ..."], "@function_body")
-*
-* Додає перший невбудований прототип з ланцюжка до вбудованого об'єкта Function.prototype,
-* а потім додає new Function(["@arg"(s)], "@function_body") до цього ланцюжка.
-* Повертає функцію.
-*
-**/
-
-Object.appendChain = function(oChain, oProto) {
- if (arguments.length &lt; 2) {
- throw new TypeError('Object.appendChain - Недостатньо аргументів');
- }
- if (typeof oProto !== 'object' &amp;&amp; typeof oProto !== 'string') {
- throw new TypeError("другий аргумент Object.appendChain повинен бути об'єктом або рядком");
- }
-
- var oNewProto = oProto,
- oReturn = o2nd = oLast = oChain instanceof this ? oChain : new oChain.constructor(oChain);
-
- for (var o1st = this.getPrototypeOf(o2nd);
- o1st !== Object.prototype &amp;&amp; o1st !== Function.prototype;
- o1st = this.getPrototypeOf(o2nd)
- ) {
- o2nd = o1st;
- }
-
- if (oProto.constructor === String) {
- oNewProto = Function.prototype;
- oReturn = Function.apply(null, Array.prototype.slice.call(arguments, 1));
- this.setPrototypeOf(oReturn, oLast);
- }
-
- this.setPrototypeOf(o2nd, oNewProto);
- return oReturn;
-}
-</pre>
-
-<h3 id="Використання">Використання</h3>
-
-<h4 id="Перший_приклад_Додавання_ланцюжка_до_прототипу">Перший приклад: Додавання ланцюжка до прототипу</h4>
-
-<pre class="brush: js">function Mammal() {
- this.isMammal = 'так';
-}
-
-function MammalSpecies(sMammalSpecies) {
- this.species = sMammalSpecies;
-}
-
-MammalSpecies.prototype = new Mammal();
-MammalSpecies.prototype.constructor = MammalSpecies;
-
-var oCat = new MammalSpecies('Кіт');
-
-console.log(oCat.isMammal); // 'так'
-
-function Animal() {
- this.breathing = 'так';
-}
-
-Object.appendChain(oCat, new Animal());
-
-console.log(oCat.breathing); // 'так'
-</pre>
-
-<h4 id="Другий_приклад_Перетворення_простого_значення_на_екземпляр_свого_конструктора_та_додавання_його_ланцюжка_до_прототипу">Другий приклад: Перетворення простого значення на екземпляр свого конструктора та додавання його ланцюжка до прототипу</h4>
-
-<pre class="brush: js">function MySymbol() {
- this.isSymbol = 'так';
-}
-
-var nPrime = 17;
-
-console.log(typeof nPrime); // 'number'
-
-var oPrime = Object.appendChain(nPrime, new MySymbol());
-
-console.log(oPrime); // '17'
-console.log(oPrime.isSymbol); // 'так'
-console.log(typeof oPrime); // 'object'
-</pre>
-
-<h4 id="Третій_приклад_Додавання_ланцюжка_до_обєкта_Function.prototype_та_додавання_нової_функції_до_цього_ланцюжка">Третій приклад: Додавання ланцюжка до об'єкта Function.prototype та додавання нової функції до цього ланцюжка</h4>
-
-<pre class="brush: js">function Person(sName) {
- this.identity = sName;
-}
-
-var george = Object.appendChain(new Person('Георгій'),
- 'console.log("Всім привіт!!");');
-
-console.log(george.identity); // 'Георгій'
-george(); // 'Всім привіт!!'
-</pre>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Специфікація</th>
- <th scope="col">Статус</th>
- <th scope="col">Коментар</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.setprototypeof', 'Object.setPrototypeOf')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES2015', '#sec-object.setprototypeof', 'Object.setPrototypeOf')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Початкове визначення.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.Object.setPrototypeOf")}}</p>
-</div>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Reflect.setPrototypeOf()")}}</li>
- <li>{{jsxref("Object.prototype.isPrototypeOf()")}}</li>
- <li>{{jsxref("Object.getPrototypeOf()")}}</li>
- <li>{{jsxref("Object.prototype.proto","Object.prototype.__proto__")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/tolocalestring/index.html b/files/uk/web/javascript/reference/global_objects/object/tolocalestring/index.html
deleted file mode 100644
index cc85fc6920..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/tolocalestring/index.html
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: Object.prototype.toLocaleString()
-slug: Web/JavaScript/Reference/Global_Objects/Object/toLocaleString
-tags:
- - JavaScript
- - Довідка
- - Об'єкт
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/toLocaleString
----
-<div>{{JSRef}}</div>
-
-<p>Метод <code><strong>toLocaleString()</strong></code> повертає рядок, що відображає об'єкт. Цей метод призначений, щоб бути заміщеним у похідних об'єктах для специфічних задач щодо локалі.</p>
-
-<div>{{EmbedInteractiveExample("pages/js/object-prototype-tolocalestring.html")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox notranslate"><var>obj</var>.toLocaleString()</pre>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>Рядок, що відображає об'єкт.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Метод {{jsxref("Object","об'єкта")}} <code>toLocaleString</code> повертає результат виклику {{jsxref("Object.toString", "toString()")}}.</p>
-
-<p>Ця функція надана, щоб дати об'єктам загальний метод <code>toLocaleString</code>, хоча не усі його використовуватимуть. Дивіться наведений нижче список.</p>
-
-<h3 id="Обєкти_які_заміщують_toLocaleString">Об'єкти, які заміщують <code>toLocaleString</code></h3>
-
-<ul>
- <li>{{jsxref("Array")}}: {{jsxref("Array.prototype.toLocaleString()")}}</li>
- <li>{{jsxref("Число", "Number")}}: {{jsxref("Number.prototype.toLocaleString()")}}</li>
- <li>{{jsxref("Date")}}: {{jsxref("Date.prototype.toLocaleString()")}}</li>
- <li>{{jsxref("TypedArray")}}: {{jsxref("TypedArray.prototype.toLocaleString()")}}</li>
- <li>{{jsxref("BigInt")}}: {{jsxref("BigInt.prototype.toLocaleString()")}}</li>
-</ul>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="Заміщення_toLocaleString_у_масиві">Заміщення toLocaleString() у масиві</h3>
-
-<p>На об'єктах <code><a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></code>, <code><a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/Array/toLocaleString">toLocaleString()</a></code> може використовуватись для виводу масиву значень у вигляді рядка, з необов'язковим додаванням специфічних мовних ідентифікаторів (наприклад, символів валюти):</p>
-
-<p>Наприклад:</p>
-
-<pre class="brush: js notranslate">const testArray = [4, 7, 10];
-
-let euroPrices = testArray.toLocaleString('fr', { style: 'currency', currency: 'EUR'});
-// "4,00 €,7,00 €,10,00 €"</pre>
-
-<h3 id="Заміщення_toLocaleString_у_обєктах_Date">Заміщення toLocaleString() у об'єктах Date</h3>
-
-<p>На об'єктах <code><a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/Date">Date</a></code>, <code><a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString">toLocaleString()</a></code> використовується для виводу дати згідно особливостей мовних налаштувань:</p>
-
-<p>Наприклад:</p>
-
-<pre class="brush: js notranslate">const testDate = new Date(Date.now());
-// "Date Fri May 29 2020 18:04:24 GMT+0100 (Британський літній час)"
-
-let deDate = testDate.toLocaleString('de');
-// "29.5.2020, 18:04:24"
-
-var frDate = testDate.toLocaleString('fr');
-//"29/05/2020 à 18:04:24"</pre>
-
-<h3 id="Заміщення_toLocaleString_у_обєктах_Number">Заміщення toLocaleString() у об'єктах Number</h3>
-
-<p>На об'єктах <code><a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/Number">Number</a></code> , <code><a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString">toLocaleString()</a></code> використовується для виводу чисел згідно особливостей мовних налаштувань, наприклад, з правильними роздільниками:</p>
-
-<p>Наприклад:</p>
-
-<pre class="notranslate">const testNumber = 2901234564;
-// "2901234564"
-
-let deNumber = testNumber.toLocaleString('de');
-// "2.901.234.564"
-
-let frNumber = testNumber.toLocaleString('fr');
-// "2 901 234 564"</pre>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Специфікація</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.prototype.tolocalestring', 'Object.prototype.toLocaleString')}}</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-
-
-<p>{{Compat("javascript.builtins.Object.toLocaleString")}}</p>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Object.prototype.toString()")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/tosource/index.html b/files/uk/web/javascript/reference/global_objects/object/tosource/index.html
deleted file mode 100644
index 1de70827b6..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/tosource/index.html
+++ /dev/null
@@ -1,132 +0,0 @@
----
-title: Object.prototype.toSource()
-slug: Web/JavaScript/Reference/Global_Objects/Object/toSource
-tags:
- - JavaScript
- - Об'єкт
- - застарілий
- - метод
- - нестандартний
- - прототип
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/toSource
----
-<div>{{JSRef}} {{obsolete_header}}</div>
-
-<p>Метод <strong><code>toSource()</code></strong> повертає рядок, який відображає першокод об'єкта.</p>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox notranslate"><code>Object.toSource();
-<var>obj</var>.toSource();
-</code></pre>
-
-<h3 id="Повертає">Повертає</h3>
-
-<p>Рядок, який відображає першокод об'єкта.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Метод <code>toSource()</code> повертає наступні значення:</p>
-
-<ul>
- <li>Для вбудованого об'єкта {{jsxref("Object")}} <code>toSource()</code> повертає наступний рядок, який вказує, що першокод недоступний:
-
- <pre class="brush: js notranslate">function Object() {
- [native code]
-}
-</pre>
- </li>
- <li>Для екземплярів {{jsxref("Object")}} <code>toSource()</code> повертає рядок, який відображає першокод.</li>
-</ul>
-
-<p>Ви можете викликати <code>toSource()</code> під час налагодження для дослідження вмісту об'єкта.</p>
-
-<h3 id="Перезапис_методу_toSource">Перезапис методу <code>toSource()</code></h3>
-
-<p>Перезапис <code>toSource()</code> не несе ніякої шкоди об'єктам. Наприклад:</p>
-
-<pre class="brush: js notranslate">function Person(name) {
- this.name = name;
-}
-
-Person.prototype.toSource = function Person_toSource() {
- return 'new Person(' + uneval(this.name) + ')';
-};
-
-console.log(new Person('Джо').toSource()); // ---&gt; new Person("Джо")
-</pre>
-
-<h3 id="Вбудовані_методи_toSource">Вбудовані методи <code>toSource()</code></h3>
-
-<p>Кожен базовий тип JavaScript має свій власний метод <code>toSource()</code>. Ці об'єкти наступні:</p>
-
-<ul>
- <li>{{jsxref("Array.prototype.toSource()")}} — об'єкт {{jsxref("Array")}}.</li>
- <li>{{jsxref("Boolean.prototype.toSource()")}} — об'єкт {{jsxref("Boolean")}}.</li>
- <li>{{jsxref("Date.prototype.toSource()")}} — об'єкт {{jsxref("Date")}}.</li>
- <li>{{jsxref("Function.prototype.toSource()")}} — об'єкт {{jsxref("Function")}}.</li>
- <li>{{jsxref("Number.prototype.toSource()")}} — об'єкт {{jsxref("Число","Number")}}.</li>
- <li>{{jsxref("RegExp.prototype.toSource()")}} — об'єкт {{jsxref("RegExp")}}.</li>
- <li>{{jsxref("String.prototype.toSource()")}} — об'єкт {{jsxref("String")}}.</li>
- <li>{{jsxref("Symbol.prototype.toSource()")}} — об'єкт {{jsxref("Symbol")}}.</li>
- <li><code>Math.toSource()</code> — Повертає рядок "Math".</li>
-</ul>
-
-<h3 id="Обмеження_для_циклічних_обєктів">Обмеження для циклічних об'єктів</h3>
-
-<p>У випадках, коли об'єкт містить посилання на самого себе, наприклад, циклічно зв'язаний список чи дерево, котре можна пройти обома шляхами, <code>toSource()</code> не відтворюватиме посилання на самого себе, починаючи з Firefox 24. Наприклад:</p>
-
-<pre class="brush: js notranslate">var obj1 = {};
-var obj2 = { a: obj1 };
-obj1.b = obj2;
-
-console.log('Циклічний: ' + (obj1.b.a == obj1));
-
-var objSource = obj1.toSource(); // повертає "({b:{a:{}}})"
-
-obj1 = eval(objSource);
-
-console.log('Циклічний: ' + (obj1.b.a == obj1));
-</pre>
-
-<p>Якщо застосовується циклічна структура, і потрібен метод <code>toSource()</code>, об'єкт має перезаписати <code>toSource()</code>, або використовуючи посилання на конструктор, або надавши анонімну функцію.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="Використання_toSource">Використання <code>toSource()</code></h3>
-
-<p>Наступний код визначає тип об'єкта <code>Dog</code> і створює <code>theDog</code>, об'єкт типу <code>Dog</code>:</p>
-
-<pre class="brush: js notranslate">function Dog(name, breed, color, sex) {
- this.name = name;
- this.breed = breed;
- this.color = color;
- this.sex = sex;
-}
-
-theDog = new Dog('Галя', 'лабрадор', 'шоколадний', 'самиця');
-</pre>
-
-<p>Якщо викликати метод <code>toSource()</code> об'єкта <code>theDog</code>, він поверне першокод JavaScript, який визначає об'єкт:</p>
-
-<pre class="brush: js notranslate">theDog.toSource();
-// повертає ({name:"Галя", breed:"лабрадор", color:"шоколадний", sex:"самиця"})
-</pre>
-
-<h2 id="Специфікація">Специфікація</h2>
-
-<p>Не є частиною жодних стандартів.</p>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.Object.toSource")}}</p>
-</div>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li>{{jsxref("Object.prototype.toString()")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/tostring/index.html b/files/uk/web/javascript/reference/global_objects/object/tostring/index.html
deleted file mode 100644
index 681a6c6f06..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/tostring/index.html
+++ /dev/null
@@ -1,148 +0,0 @@
----
-title: Object.prototype.toString()
-slug: Web/JavaScript/Reference/Global_Objects/Object/toString
-tags:
- - JavaScript
- - Об'єкт
- - метод
- - прототип
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/toString
----
-<div>{{JSRef}}</div>
-
-<div>Метод <code><strong>toString()</strong></code> повертає рядок, який відображає об'єкт.</div>
-
-<div></div>
-
-<div>{{EmbedInteractiveExample("pages/js/object-prototype-tostring.html")}}</div>
-
-<div class="hidden">The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> and send us a pull request.</div>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><code><var>obj</var>.toString()</code></pre>
-
-<h3 id="Повертає">Повертає</h3>
-
-<p>Рядок, який відображає об'єкт.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>Кожен об'єкт має метод <code>toString()</code>, який автоматично викликається, коли об'єкт повинен бути відображений як рядок, або коли об'єкт знаходиться у виразі, де очікується рядок. За замовчуванням, метод  <code>toString()</code> успадковується усіма об'єктами, похідними від <code>Object</code>. Якщо цей метод не був перезаписаний у користувацькому об'єкті, то <code>toString()</code> поверне "<code>[object <var>type</var>]</code>", де <code><var>type</var></code> - це тип об'єкта. Наступний код це демонструє:</p>
-
-<pre class="brush: js">var o = new Object();
-o.toString(); // повертає [object Object]
-</pre>
-
-<div class="note">
-<p><strong>Примітка:</strong> Починаючи з JavaScript 1.8.5, <code>toString()</code>, викликаний для {{jsxref("null")}}, повертає <code>[object <em>Null</em>]</code>, для {{jsxref("undefined")}} повертає <code>[object <em>Undefined</em>]</code>, як визначенно у 5-й версії ECMAScript і згодом у Ерраті. Дивіться {{anch("Використання_toString_для_визначення_класу_обєкта", "Використання toString() для визначення класу об'єкта")}}.</p>
-</div>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="Перезапис_стандартного_методу_toString">Перезапис стандартного методу <code>toString</code></h3>
-
-<p>Ви можете створити функцію, яка викликатиметься замість стандартного методу <code>toString()</code>. Метод <code>toString()</code> не приймає жодних аргументів і має повернути рядок. Метод <code>toString()</code>, який ви створите, може повертати будь-яке значення, але найбільш корисним буде, якщо він повертатиме інформацію про об'єкт.</p>
-
-<p>Наступний код визначає тип об'єкта <code>Dog</code> і створює <code>theDog</code>, об'єкт типу <code>Dog</code>:</p>
-
-<pre class="brush: js">function Dog(name, breed, color, sex) {
- this.name = name;
- this.breed = breed;
- this.color = color;
- this.sex = sex;
-}
-
-theDog = new Dog('Галя', 'лабрадор', 'шоколадна', 'самиця');
-</pre>
-
-<p>Якщо ви викличете метод <code>toString()</code> для цього користувацького об'єкта, він поверне стандартне значення, успадковане від {{jsxref("Object")}}:</p>
-
-<pre class="brush: js">theDog.toString(); // повертає [object Object]
-</pre>
-
-<p>Наступний код створює і присвоює значення <code>dogToString()</code>, щоб перезаписати  стандартний метод <code>toString()</code>. Ця функція генерує рядок, що складається з імені, породи, кольору і статі об'єкта, у вигляді "<code>властивість = значення;</code>".</p>
-
-<pre class="brush: js">Dog.prototype.toString = function dogToString() {
- var ret = 'Собака ' + this.name + ' - ' + this.color + ' ' + this.sex + ' ' + this.breed;
- return ret;
-}
-</pre>
-
-<p>або</p>
-
-<pre class="brush: js">Dog.prototype.toString = function dogToString() {
- return `Собака ${this.name} - ${this.color} ${this.sex} ${this.breed}`;
-}
-</pre>
-
-<p>Завдяки цьому коду, як тільки <code>theDog</code> буде використаний у контексті рядка, JavaScript автоматично викличе новий метод <code>toString()</code>, який поверне наступний рядок:</p>
-
-<pre class="brush: js">"Собака Галя - шоколадна самиця лабрадор"
-</pre>
-
-<h3 id="Використання_toString_для_визначення_класу_обєкта">Використання toString() для визначення класу об'єкта</h3>
-
-<p>Метод <code>toString()</code> може бути використаний з будь-яким об'єктом, щоб отримати його клас. Щоб використати <code>Object.prototype.toString()</code> для будь-якого об'єкта, необхідно викликати {{jsxref("Function.prototype.call()")}} або {{jsxref("Function.prototype.apply()")}}, передаючи об'єкт, який ви хочете дослідити, першим параметром (<code>thisArg</code>).</p>
-
-<pre class="brush: js">var toString = Object.prototype.toString;
-
-toString.call(new Date); // [object Date]
-toString.call(new String); // [object String]
-toString.call(Math); // [object Math]
-
-// Починаючи з JavaScript 1.8.5
-toString.call(undefined); // [object Undefined]
-toString.call(null); // [object Null]
-</pre>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Специфікація</th>
- <th scope="col">Статус</th>
- <th scope="col">Коментар</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.prototype.tostring', 'Object.prototype.toString')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-object.prototype.tostring', 'Object.prototype.toString')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES5.1', '#sec-15.2.4.2', 'Object.prototype.toString')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td>Виклик на {{jsxref("null")}} повертає <code>[object <em>Null</em>]</code>, а {{jsxref("undefined")}} повертає <code>[object <em>Undefined</em>]</code></td>
- </tr>
- <tr>
- <td>{{SpecName('ES1')}}</td>
- <td>{{Spec2('ES1')}}</td>
- <td>Початкове визначення. Реалізоване у JavaScript 1.0.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.Object.toString")}}</p>
-</div>
-
-<h2 id="Дивіться_також">Дивіться також</h2>
-
-<ul>
- <li>{{jsxref("Object.prototype.toSource()")}}</li>
- <li>{{jsxref("Object.prototype.valueOf()")}}</li>
- <li>{{jsxref("Number.prototype.toString()")}}</li>
- <li>{{jsxref("Symbol.toPrimitive")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/valueof/index.html b/files/uk/web/javascript/reference/global_objects/object/valueof/index.html
deleted file mode 100644
index 153f2be121..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/valueof/index.html
+++ /dev/null
@@ -1,115 +0,0 @@
----
-title: Object.prototype.valueOf()
-slug: Web/JavaScript/Reference/Global_Objects/Object/valueOf
-tags:
- - JavaScript
- - valueOf
- - Об'єкт
- - метод
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/valueOf
----
-<div>{{JSRef}}</div>
-
-<div><span class="seoSummary">Метод <strong><code>valueOf()</code></strong> повертає просту величину вказаного об'єкта.</span></div>
-
-<div>{{EmbedInteractiveExample("pages/js/object-prototype-valueof.html")}}</div>
-
-
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox"><var>object</var>.valueOf()</pre>
-
-<h3 id="Значення_що_повертається">Значення, що повертається</h3>
-
-<p>Проста величина вказаного об'єкта.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p>JavaScript викликає метод <code>valueOf</code>, щоб <span class="tlid-translation translation" lang="uk"><span title="">перетворити</span></span> об'єкт на просту величину. Рідко трапляється необхідність викликати його вручну. JavaScript автоматично застосовує <code>valueOf</code>, коли зустрічає об'єкт там, де очікується проста величина.</p>
-
-<p>З<span class="tlid-translation translation" lang="uk"><span title="">а замовчуванням,</span></span> кожен об'єкт, який походить від {{jsxref("Object")}}, успадковує метод <code>valueOf</code>. Кожний вбудований об'єкт перезаписує цей метод, щоб повертати відповідне значення. Якщо об'єкт не має простої величини, <code>valueOf</code> повертає сам об'єкт.</p>
-
-<p>Ви можете використовувати <code>valueOf</code> у своєму коді, щоб перетворити вбудований об'єкт на просту величину. Коли ви створюєте користувацький об'єкт, ви можете перезаписати <code>Object.prototype.valueOf()</code>, щоб викликати свій метод замість початкового метода {{jsxref("Object")}}.</p>
-
-<h3 id="Перезапис_valueOf_для_користувацьких_обєктів">Перезапис valueOf для користувацьких об'єктів</h3>
-
-<p>Ви можете створити функцію, яка буде викликатися замість стандартного методу <code>valueOf</code>. Ваша функція не повинна приймати аргументів.</p>
-
-<p>Припустимо, ви маєте об'єкт <code>MyNumberType</code> і бажаєте створити для нього метод <code>valueOf</code>. Наступний код призначає створену користувачем функцію методу <code>valueOf</code><span class="tlid-translation translation" lang="uk"><span title="">:</span></span></p>
-
-<pre class="brush: js">MyNumberType.prototype.valueOf = function() { return customPrimitiveValue; };</pre>
-
-<p>З наведеним кодом, в будь-який момент, коли об'єкт типу <code>MyNumberType</code> використовується у контексті, де він має бути представлений простою величиною, JavaScript автоматично викличе функцію, визначену у коді.</p>
-
-<p>Зазвичай, JavaScript викликає метод об'єкта <code>valueOf</code>, але ви можете викликати його власноруч, наступним чином:</p>
-
-<pre class="brush: js"><var>myNumberType</var>.valueOf()</pre>
-
-<div class="note">
-<p><strong>Заувага:</strong> Об'єкти Object у контексті рядка приводяться за допомогою методу {{jsxref("Object.toString", "toString()")}}, це відрізняє їх від об'єктів {{jsxref("String")}}, що перетворюються на рядкові примітиви, використовуючи <code>valueOf</code>. Усі об'єкти мають приведення до рядка виду "<code>[object <em>type</em>]</code>". Але чимало об'єктів не приводяться до числа, булевого значення чи функції.</p>
-</div>
-
-<h2 id="Приклади">Приклади</h2>
-
-<h3 id="Використання_valueOf">Використання valueOf</h3>
-
-<pre class="brush: js">function MyNumberType(n) {
- this.number = n;
-}
-
-MyNumberType.prototype.valueOf = function() {
- return this.number;
-};
-
-var myObj = new MyNumberType(4);
-myObj + 3; // 7
-</pre>
-
-<h2 id="Специфікації">Специфікації</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Специфікація</th>
- <th scope="col">Статус</th>
- <th scope="col">Коментар</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ES1')}}</td>
- <td>{{Spec2('ES1')}}</td>
- <td>Початкове визначення. Реалізоване у JavaScript 1.1.</td>
- </tr>
- <tr>
- <td>{{SpecName('ES5.1', '#sec-15.2.4.4', 'Object.prototype.valueOf')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-object.prototype.valueof', 'Object.prototype.valueOf')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-object.prototype.valueof', 'Object.prototype.valueOf')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
-
-
-
-<p>{{Compat("javascript.builtins.Object.valueOf")}}</p>
-
-<h2 id="Див._також"><span class="tlid-translation translation" lang="uk"><span title="">Див. також</span></span></h2>
-
-<ul>
- <li>{{jsxref("Object.prototype.toString()")}}</li>
- <li>{{jsxref("parseInt", "parseInt()")}}</li>
- <li>{{jsxref("Symbol.toPrimitive")}}</li>
-</ul>
diff --git a/files/uk/web/javascript/reference/global_objects/object/values/index.html b/files/uk/web/javascript/reference/global_objects/object/values/index.html
deleted file mode 100644
index f3a933dbe8..0000000000
--- a/files/uk/web/javascript/reference/global_objects/object/values/index.html
+++ /dev/null
@@ -1,104 +0,0 @@
----
-title: Object.values()
-slug: Web/JavaScript/Reference/Global_Objects/Object/values
-tags:
- - JavaScript
- - Method
- - Object
- - Довідка
-translation_of: Web/JavaScript/Reference/Global_Objects/Object/values
----
-<div>{{JSRef}}</div>
-
-<p>Метод <strong><code>Object.values()</code></strong> вертає масив значень всіх особистих (не успадкованих) перелічуваних властивостей переданого об'єкта. Порядок властивостей в масиві є тим самим, що й у циклі {{jsxref("Statements/for...in", "for...in")}} (різниця лише в тому, що цикл обходить також і властивості прототипу).</p>
-
-<p>{{EmbedInteractiveExample("pages/js/object-values.html")}}</p>
-
-<div class="hidden">
-<p>The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> and send us a pull request.</p>
-</div>
-
-<h2 id="Синтаксис">Синтаксис</h2>
-
-<pre class="syntaxbox">Object.values(<var>obj</var>)</pre>
-
-<h3 id="Параметри">Параметри</h3>
-
-<dl>
- <dt><code>obj</code></dt>
- <dd>Об'єкт, значення властивостей якого треба отримати.</dd>
-</dl>
-
-<h3 id="Повертає">Повертає</h3>
-
-<p>Масив значень всіх особистих властивостей переданого об'єкта.</p>
-
-<h2 id="Опис">Опис</h2>
-
-<p><code>Object.values()</code> повертає масив значень властивостей, які належать безпосередньо об'єктові <code>obj</code>. Порядок отриманих властивостей збігається із тим, що його забезпечує перебір через {{jsxref("Statements/for...in", "for...in")}}.</p>
-
-<h2 id="Приклади">Приклади</h2>
-
-<pre class="brush: js">var obj = { foo: 'bar', baz: 42 };
-console.log(Object.values(obj)); // ['bar', 42]
-
-// подібний до масиву об'єкт
-var obj = { 0: 'a', 1: 'b', 2: 'c' };
-console.log(Object.values(obj)); // ['a', 'b', 'c']
-
-// подібний до масиву об'єкт з випадковим порядком ключів
-var an_obj = { 100: 'a', 2: 'b', 7: 'c' };
-console.log(Object.values(an_obj)); // ['b', 'c', 'a']
-
-// властивість getFoo є неперелічуваною
-var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo; } } });
-my_obj.foo = 'bar';
-console.log(Object.values(my_obj)); // ['bar']
-
-// аргументи, що не є об'єктами, буде перетворені на об'єкти
-console.log(Object.values('foo')); // виводить ['f', 'o', 'o']</pre>
-
-<h2 id="Запасний_варіант_поліфіл">Запасний варіант (поліфіл)</h2>
-
-<p>Для старіших середовищ, де метод <code>Object.values()</code> відсутній, можна скористатися запасним варіантом з репозиторіїв <a href="https://github.com/tc39/proposal-object-values-entries">tc39/proposal-object-values-entries</a> або <a href="https://github.com/es-shims/Object.values">es-shims/Object.values</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('ESDraft', '#sec-object.values', 'Object.values')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES8', '#sec-object.values', 'Object.values')}}</td>
- <td>{{Spec2('ES8')}}</td>
- <td>Первинне визначення.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Підтримка_веб-переглядачами">Підтримка веб-переглядачами</h2>
-
-<div>
-<div class="hidden">Таблиця сумісності на цій сторінці створена зі структурованих даних. Якщо ви хочете долучитися до розробки цих даних, пропонуйте нам свої pull request до репозиторію <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div>
-
-<p>{{Compat("javascript.builtins.Object.values")}}</p>
-</div>
-
-<h2 id="Див._також">Див. також</h2>
-
-<ul>
- <li><a href="/uk/docs/Web/JavaScript/Перелічуваність_та_належність_властивостей">Перелічуваність та належність властивостей</a></li>
- <li>{{jsxref("Object.keys()")}}</li>
- <li>{{jsxref("Object.entries()")}}</li>
- <li>{{jsxref("Object.prototype.propertyIsEnumerable()")}}</li>
- <li>{{jsxref("Object.create()")}}</li>
- <li>{{jsxref("Object.getOwnPropertyNames()")}}</li>
-</ul>