Object() Konstruktor
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Der Object()
-Konstruktor wandelt die Eingabe in ein Objekt um. Sein Verhalten hängt vom Typ der Eingabe ab.
Syntax
new Object()
new Object(value)
Object()
Object(value)
Note:
Object()
kann mit oder ohnenew
aufgerufen werden, manchmal mit unterschiedlichen Effekten. Siehe Rückgabewert.
Parameter
value
Optional-
Jeder Wert.
Rückgabewert
Wenn der Object()
-Konstruktor selbst aufgerufen oder konstruiert wird, ist sein Rückgabewert ein Objekt:
- Wenn der Wert
null
oderundefined
ist, wird ein leeres Objekt erstellt und zurückgegeben. - Wenn der Wert bereits ein Objekt ist, wird der Wert zurückgegeben.
- Andernfalls wird ein Objekt eines Typs zurückgegeben, das dem gegebenen Wert entspricht. Beispielsweise führt die Übergabe eines
BigInt
-Primitives zu einemBigInt
-Wrapper-Objekt.
Wenn Object()
konstruiert wird, aber new.target
nicht der Object
-Konstruktor selbst ist, ist das Verhalten etwas anders — es initialisiert ein neues Objekt mit new.target.prototype
als dessen Prototyp. Jeder Argumentwert wird ignoriert. Dies kann passieren, wenn Object()
z. B. implizit über super()
im Konstruktor einer Klasse aufgerufen wird, die von Object
erbt. In diesem Fall wird der this
-Wert im Konstruktor auch dann nicht zu einer Number
-Instanz, wenn Sie super()
eine Zahl übergeben.
Beispiele
Erstellen eines neuen Objekts
const o = new Object();
o.foo = 42;
console.log(o);
// { foo: 42 }
Verwendung von Object bei undefined und null Typen
Die folgenden Beispiele speichern ein leeres Object
-Objekt in o
:
const o = new Object();
const o = new Object(undefined);
const o = new Object(null);
Erhalten von Wrapper-Objekten für BigInt und Symbol
Die BigInt()
- und Symbol()
-Konstruktoren werfen einen Fehler, wenn sie mit new
aufgerufen werden, um den häufigen Fehler zu vermeiden, ein Wrapper-Objekt anstelle des primitiven Wertes zu erstellen. Der einzige Weg, ein Wrapper-Objekt für diese Typen zu erstellen, ist, Object()
mit ihnen aufzurufen:
const numberObj = new Number(1);
console.log(typeof numberObj); // "object"
const bigintObj = Object(1n);
console.log(typeof bigintObj); // "object"
const symbolObj = Object(Symbol("foo"));
console.log(typeof symbolObj); // "object"
Spezifikationen
Specification |
---|
ECMAScript Language Specification # sec-object-constructor |
Browser-Kompatibilität
BCD tables only load in the browser