1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
|
---
title: Object
slug: Web/JavaScript/Reference/Global_Objects/Object
tags:
- Constructor
- JavaScript
- Object
- Reference
- Référence(2)
translation_of: Web/JavaScript/Reference/Global_Objects/Object
---
<div>{{JSRef("Global_Objects", "Object")}}</div>
<h2 id="Summary" name="Summary">Сводка</h2>
<p>Конструктор <code><strong>Object</strong></code> создаёт объект-обёртку.</p>
<h2 id="Syntax" name="Syntax">Синтаксис</h2>
<pre class="syntaxbox"><code>// Инициализатор объекта или литерал
{ [ <var>nameValuePair1</var>[, <var>nameValuePair2</var>[, ...<var>nameValuePairN</var>] ] ] }
// Вызов в качестве конструктора
new Object([<var>value</var>])
</code></pre>
<h3 id="Parameters" name="Parameters">Параметры</h3>
<dl>
<dt><code>nameValuePair1, nameValuePair2, ... nameValuePair<em>N</em></code></dt>
<dd>Пары из имён (строки) и значений (любые значения), где имя отделяется от значения двоеточием.</dd>
<dt><code>value</code></dt>
<dd>Любое значение.</dd>
</dl>
<h2 id="Description" name="Description">Описание</h2>
<p>Конструктор <code>Object</code> создаёт объект-обёртку для переданного значения. Если значением является {{jsxref("Global_Objects/null", "null")}} или {{jsxref("Global_Objects/undefined", "undefined")}}, создаёт и возвращает пустой объект, в противном случае возвращает объект такого типа, который соответствует переданному значению. Если значение уже является объектом, конструктор вернёт это значение.</p>
<p>При вызове в не-конструктором контексте, <code>Object</code> ведёт себя идентично коду <code>new Object()</code>.</p>
<p>Так же смотрите {{jsxref("Operators/Object_initializer", "синтаксис инициализатора объекта / литеральный синтаксис", "", 1)}}.</p>
<h2 id="Properties" name="Properties">Свойства конструктора <code>Object</code></h2>
<dl>
<dt><code>Object.length</code></dt>
<dd>Имеет значение 1.</dd>
<dt>{{jsxref("Object.prototype")}}</dt>
<dd>Позволяет добавлять свойства ко всем объектам типа <code>Object</code>.</dd>
</dl>
<h2 id="Methods" name="Methods">Методы конструктора <code>Object</code></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.freeze()")}}</dt>
<dd>Замораживает объект: другой код не сможет удалить или изменить никакое свойство.</dd>
<dt>{{jsxref("Object.getOwnPropertyDescriptor()")}}</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>Определяет, являются ли два значения различимыми (то есть, одинаковыми)</dd>
<dt>{{jsxref("Object.isExtensible()")}}</dt>
<dd>Определяет, разрешено ли расширение объекта.</dd>
<dt>{{jsxref("Object.isFrozen()")}}</dt>
<dd>Определяет, был ли объект заморожен.</dd>
<dt>{{jsxref("Object.isSealed()")}}</dt>
<dd>Определяет, является ли объект запечатанным (sealed).</dd>
<dt>{{jsxref("Object.keys()")}}</dt>
<dd>Возвращает массив, содержащий имена всех <strong>собственных</strong> перечислимых свойств переданного объекта.</dd>
<dt>{{jsxref("Object.observe()")}}</dt>
<dd>Асинхронно наблюдает за изменениями в объекте.</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>
</dl>
<h2 id="Object_instances" name="Object_instances">Экземпляры и прототип объекта <code>Object</code></h2>
<p>Все объекты в JavaScript являются потомками <code>Object</code>; все объекты наследуют методы и свойства из прототипа объекта {{jsxref("Object.prototype")}}, хотя они и могут быть переопределены. Например, прототипы других конструкторов переопределяют свойство <code>constructor</code> и предоставляют свои собственные методы <code>toString()</code>. Изменения в объекте прототипа <code>Object</code> распространяются на все объекты до тех пор, пока свойства и методы, учитывающие эти изменения, не переопределяются дальше по цепочке прототипов.</p>
<h3 id="Properties_of_Object_instances" name="Properties_of_Object_instances">Свойства</h3>
<div>{{page('/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype', 'Properties')}}</div>
<h3 id="Methods_of_Object_instances" name="Methods_of_Object_instances">Методы</h3>
<div>{{page('/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype', 'Methods')}}</div>
<h2 id="Examples" name="Examples">Примеры</h2>
<h3 id="Example.3A_Using_Object_given_undefined_and_null_types" name="Example.3A_Using_Object_given_undefined_and_null_types">Пример: использование <code>Object</code> с типами <code>undefined</code> и <code>null</code></h3>
<p>Следующий пример сохраняет пустой объект <code>Object</code> в переменную <code>o</code>:</p>
<pre class="brush: js">var o = new Object();
</pre>
<pre class="brush: js">var o = new Object(undefined);
</pre>
<pre class="brush: js">var o = new Object(null);
</pre>
<h3 id="Пример_использование_Object_для_создания_объектов_Boolean">Пример: использование <code>Object</code> для создания объектов <code>Boolean</code></h3>
<p>Следующий пример сохраняет объекты {{jsxref("Global_Objects/Boolean", "Boolean")}} в переменную <code>o</code>:</p>
<pre class="brush: js">// эквивалентно o = new Boolean(true);
var o = new Object(true);
</pre>
<pre class="brush: js">// эквивалентно o = new Boolean(false);
var o = new Object(Boolean());
</pre>
<h2 id="Specifications" name="Specifications">Спецификации</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Спецификация</th>
<th scope="col">Статус</th>
<th scope="col">Комментарии</th>
</tr>
<tr>
<td>ECMAScript 1-е издание.</td>
<td>Стандарт</td>
<td>Изначальное определение. Реализована в JavaScript 1.0.</td>
</tr>
<tr>
<td>{{SpecName('ES5.1', '#sec-15.2', 'Object')}}</td>
<td>{{Spec2('ES5.1')}}</td>
<td></td>
</tr>
<tr>
<td>{{SpecName('ES6', '#sec-object-objects', 'Object')}}</td>
<td>{{Spec2('ES6')}}</td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2>
<p>{{Compat}}</p>
<h2 id="See_also" name="See_also">Смотрите также</h2>
<ul>
<li><a href="/ru/docs/Web/JavaScript/Reference/Operators/Object_initializer">Инициализатор объекта</a></li>
</ul>
|