Object() constructor
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.
TheObject() constructor turns the input into an object. Its behavior depends on the input's type.
In this article
Syntax
new Object()new Object(value)Object()Object(value)Note:Object() can be called with or withoutnew, but sometimes with different effects. SeeReturn value.
Parameters
valueOptionalAny value.
Return value
When theObject() constructor itself is called or constructed, its return value is an object:
- If the value is
nullorundefined, it creates and returns an empty object. - If the value is an object already, it returns the value.
- Otherwise, it returns an object of a type that corresponds to the given value. For example, passing a
BigIntprimitive returns aBigIntwrapper object.
WhenObject() is constructed butnew.target is not theObject constructor itself, the behavior is slightly different — it initializes a new object withnew.target.prototype as its prototype. Any argument value is ignored. This may happen, for example, whenObject() is implicitly called viasuper() in the constructor of a class thatextendsObject. In this case, even if you pass a number tosuper(), thethis value inside the constructor does not become aNumber instance.
Examples
>Creating a new Object
const o = new Object();o.foo = 42;console.log(o);// { foo: 42 }Using Object given undefined and null types
The following examples store an emptyObject object ino:
const o = new Object();const o = new Object(undefined);const o = new Object(null);Obtaining wrapper objects for BigInt and Symbol
TheBigInt() andSymbol() constructors throw an error when called withnew, to prevent the common mistake of creating a wrapper object instead of the primitive value. The only way to create a wrapper object for these types is to callObject() with them:
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"Specifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-object-constructor> |