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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
|
---
title: Object
slug: Web/JavaScript/Reference/Global_Objects/Object
tags:
- Constructor
- JavaScript
- Object
translation_of: Web/JavaScript/Reference/Global_Objects/Object
---
<div>{{JSRef}}</div>
<h2 id="Summary" name="Summary">Zusammenfassung</h2>
<p>Der <code><strong>Object</strong></code>-Konstruktor erstellt ein Objekt</p>
<h2 id="Syntax" name="Syntax">Konstruktor</h2>
<pre class="syntaxbox"><code><code>// Object Initialisierer / Literal
{ <em>[ NameWertPaar1 [, NameWertPaar2 [, ...NameWertPaarN] ] ]</em> }
// Konstruktor-Form
</code>new Object( <em>[ Wert ]</em> )</code></pre>
<h3 id="Parameters" name="Parameters">Parameter</h3>
<dl>
<dt>NameWertPaar1, NameWertPaar2, ... NameWertPaarN</dt>
<dd>Paare von Namen (<code><strong>String</strong></code>) und Werten (eines beliebigen Typs) bei denen der Name durch ein Doppelpunkt vom Wert getrennt ist.</dd>
</dl>
<dl>
<dt>Wert</dt>
<dd>Ein Wert eines beliebigen Typs.</dd>
</dl>
<h2 id="Description" name="Description">Beschreibung</h2>
<p>Der <code>Object</code> Konstruktor erstellt ein Objekt für den übergebenen Wert. Wenn der Wert {{jsxref("null")}} oder {{jsxref("undefined")}} ist, wird ein leeres <code>Object</code> erstellt und zurückgegeben. Ansonsten wird ein Objekt des Typs erstellt, welcher dem übergebenen Wert entspricht. Sollte der Wert bereits ein vom Typ <code>Object</code> sein, wird dieses zurückgeggeben.</p>
<p>Wenn sie nicht als Konstruktor aufgerufen wird (d.h. ohne <code>new</code>), verhält sich die Funktion <code>Object</code> genau so wie <code>new Object()</code>.</p>
<p>Siehe auch den <a href="/de/docs/Web/JavaScript/Reference/Operators/Objekt_Initialisierer">Object Intialisierer / Literal Syntax</a>.</p>
<h2 id="Properties" name="Properties">Eigenschaften des <code>Object</code> Konstruktors</h2>
<dl>
<dt><code>Object.length</code></dt>
<dd>Hat den Wert 1.</dd>
<dt>{{jsxref("Object.prototype")}}</dt>
<dd>Erlaubt es neue Eigenschaften zu allen Objekten des Typs Object hinzuzufügen.</dd>
</dl>
<h2 id="Methods" name="Methods">Methoden des <code>Object</code> Konstruktors</h2>
<dl>
<dt>{{jsxref("Object.assign()")}}</dt>
<dd>Kopiert die Werte aller <strong>eigenen</strong>, aufzählbaren Eigenschaften von einem oder mehreren Quellobjekten in ein Zielobjekt.</dd>
<dt>{{jsxref("Object.create()")}}</dt>
<dd>Erstellt ein neues Objekt mit dem angegebenen Protoyp-Objekt und optionalen Eigenschaften.</dd>
<dt>{{jsxref("Object.defineProperty()")}}</dt>
<dd>Fügt eine neue Eigenschaft einem bestimmten Objekt hinzu, welche durch Zusatzinformationen beschrieben wird.</dd>
<dt>{{jsxref("Object.defineProperties()")}}</dt>
<dd>Fügt mehrere Eigenschaften einem bestimmten Objekt hinzu, welche durch Zusatzinformationen beschrieben werden.</dd>
<dt>{{jsxref("Object.entries()")}}</dt>
<dd>Gibt ein Array zurück, welches alle <strong>eigenen</strong>, aufzählbaren String-Eigenschaften in der Form von <code>[Name, Wert]</code>-Paaren enthält.</dd>
<dt>{{jsxref("Object.freeze()")}}</dt>
<dd><strong>Friert</strong> ein Objekt <strong>ein</strong>: Die Eigenschaften können nicht mehr geändert oder gelöscht werden.</dd>
<dt>{{jsxref("Object.fromEntries()")}}</dt>
<dd>Erstellt ein Objekt aus einer Liste von <code>[Name, Wert]</code>-Paaren (kehrt {{jsxref("Object.entries")}} um).</dd>
<dt>{{jsxref("Object.getOwnPropertyDescriptor()")}}</dt>
<dd>Gibt die Zusatzinformationen einer bestimmten <strong>eigenen</strong> Eigenschaft zurück.</dd>
<dt>{{jsxref("Object.getOwnPropertyDescriptors()")}}</dt>
<dd>Gibt ein Objekt zurück, welches die Zusatzinformationen aller <strong>eigenen</strong> Eigenschaften enthält.</dd>
<dt>{{jsxref("Object.getOwnPropertyNames()")}}</dt>
<dd>Gibt ein Array zurück, welches die Namen aller <strong>eigenen</strong>, aufzählbaren und nicht-aufzählbaren Eigenschaften enthält.</dd>
<dt>{{jsxref("Object.getOwnPropertySymbols()")}}</dt>
<dd>Gibt ein Array zurück, welches die Symbole aller <strong>eigenen</strong> Eigenschaften enthält.</dd>
<dt>{{jsxref("Object.getPrototypeOf()")}}</dt>
<dd>Gibt den Protoypen des angegebenen Objekts zurück.</dd>
<dt>{{jsxref("Object.is()")}}</dt>
<dd>Vergleicht ob zwei Werte den gleichen Wert haben.</dd>
<dt>{{jsxref("Object.isExtensible()")}}</dt>
<dd>Gibt an, ob ein Objekt erweitert werden kann (ob neue Eigenschaften angelegt werden können).</dd>
<dt>{{jsxref("Object.isFrozen()")}}</dt>
<dd>Gibt an, ob ein Objekt eingefroren ist.</dd>
<dt>{{jsxref("Object.isSealed()")}}</dt>
<dd>Gibt an, ob ein Objekt versiegelt ist.</dd>
<dt>{{jsxref("Object.keys()")}}</dt>
<dd>Gibt ein Array zurück, welches die Namen aller <strong>eigenen</strong> aufzählbaren String-Eigenschaften enthält.</dd>
<dt>{{jsxref("Object.preventExtensions()")}}</dt>
<dd>Verbietet das ein Objekt erweitert werden kann.</dd>
<dt>{{jsxref("Object.seal()")}}</dt>
<dd>Verbietet das Eigenschaften gelöscht werden können - versiegelt das Objekt.</dd>
<dt>{{jsxref("Object.setPrototypeOf()")}}</dt>
<dd>Legt den Prototyp fest (z.Bsp. die interne <code>[[Prototype]]</code> Eigenschaft)</dd>
<dt>{{jsxref("Object.values()")}}</dt>
<dd>Gibt ein Array zurück, welches die Werte aller <strong>eigenen</strong> aufzählbaren String-Eigenschaften enthält.</dd>
</dl>
<h2 id="Object_instances" name="Object_instances"><code>Object</code> Instanzen und das Prototyp-Objekt</h2>
<p>Alle Objekte in JavaScript stammen von <code>Object</code> ab; alle Objekte bekommen die Methoden und Eigenschaften vom {{jsxref("Object.prototype")}} vererbt, jedoch können sie überschrieben werden. Zum Beispiel können Prototypen andere Kontruktoren die <code>constructor</code>-Eigenschaft überschreiben oder aber ihre eigene <code>toString()</code> Methode implementieren. Änderungen am <code>Object</code> Prototypen wirken sich auch auf alle anderen Objekte aus, es sei denn die Eigenschaften oder Methoden sind entlang der Prototyp-Kette schon überschrieben worden.</p>
<h3 id="Properties_of_Object_instances" name="Properties_of_Object_instances">Eigenschaften</h3>
<div>{{ page('/de/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype', 'Attribute') }}</div>
<h3 id="Methods_of_Object_instances" name="Methods_of_Object_instances">Methoden</h3>
<div>{{ page('/de/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype', 'Methoden') }}</div>
<h2 id="Eine_Eigenschaft_von_einem_Objekt_löschen">Eine Eigenschaft von einem Objekt löschen</h2>
<p>Es gibt keine Methode von <code>Object</code> selbst, um eine Eigenschaft zu löschen (wie z.Bsp. <code><a href="/de/docs/Web/JavaScript/Reference/Global_Objects/Map/delete">Map.prototype.delete()</a></code>). Um das zu erreichen, muss der <a href="/de/docs/Web/JavaScript/Reference/Operators/delete">delete Operator</a> benutzt werden.</p>
<h2 id="Examples" name="Examples">Beispiele</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> mit <code>undefined</code> und <code>null</code> Typen nutzen</h3>
<p>Die folgenden Beispiele speichern ein leeres <code>Object</code> in <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_nutzen_um_Boolean-Objekte_zu_erstellen"><code>Object</code> nutzen um <code>Boolean</code>-Objekte zu erstellen</h3>
<p>Die folgenden Beispiele speichern {{jsxref("Boolean")}}-Objekte in <code>o</code>:</p>
<pre class="brush: js">// das gleiche wie: var o = new Boolean(true);
var o = new Object(true);
</pre>
<pre class="brush: js">// das gleiche wie: var o = new Boolean(false);
var o = new Object(Boolean());
</pre>
<h2 id="Spezifikationen">Spezifikationen</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Spezifikation</th>
<th scope="col">Status</th>
<th scope="col">Kommentar</th>
</tr>
<tr>
<td>{{SpecName('ES1')}}</td>
<td>{{Spec2('ES1')}}</td>
<td>Initiale Definition.<br>
In JavaScript 1.0 implementiert</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>
<p><code>Object.assign</code>, <code>Object.getOwnPropertySymbols</code>, <code>Object.setPrototypeOf</code> und <code>Object.is</code> hinzugefügt</p>
</td>
</tr>
<tr>
<td>{{SpecName('ESDraft', '#sec-object-objects', 'Object')}}</td>
<td>{{Spec2('ESDraft')}}</td>
<td><code>Object.entries</code>, <code>Object.values</code> und <code>Object.getOwnPropertyDescriptors</code> hinzugefügt.</td>
</tr>
</tbody>
</table>
<h2 id="Browser-Kompatibilität">Browser-Kompatibilität</h2>
<p>{{Compat("javascript.builtins.Object")}}</p>
<h2 id="Siehe_auch">Siehe auch</h2>
<ul>
<li><a href="/de/docs/Web/JavaScript/Reference/Operators/Objekt_Initialisierer">Object initializer</a></li>
</ul>
|