Object() constructor
BaselineWidely 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.
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
value
OptionalAny value.
Return value
When theObject()
constructor itself is called or constructed, its return value is an object:
- If the value is
null
orundefined
, 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
BigInt
primitive returns aBigInt
wrapper 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 |