Object() コンストラクター
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Object()
コンストラクターは、入力されたものをオブジェクトに変換します。その動作は入力したものの型によって異なります。
構文
引数
value
省略可任意の値。
返値
Object()
コンストラクター自体がが呼び出された場合や構築された場合、返値はオブジェクトになります。
- 値が
null
またはundefined
の場合は、空のオブジェクトを作成して返します。 - 値がすでにオブジェクトである場合は、その値を返します。
- そうでない場合は、指定された値に対応する型のオブジェクトを返します。例えば、長整数型プリミティブを渡すと、
BigInt
ラッパーオブジェクトを返します。
Object()
が構築され、new.target
がObject
コンストラクター自体でない場合、動作は少し異なります。引数の値は無視されます。これは例えば、Object
を継承したクラスのコンストラクターで、Object()
がsuper()
を介して暗黙的に呼び出された場合に発生することがあります。この場合、たとえsuper()
に数値を渡しても、コンストラクター内のthis
値はNumber
インスタンスにはなりません。
例
新しい Object の生成
js
const o = new Object();o.foo = 42;console.log(o);// { foo: 42 }
undefined
やnull
型を指定してObject
を使用
以下の例は、空のObject
オブジェクトをo
に格納します。
js
const o = new Object();
js
const o = new Object(undefined);
js
const o = new Object(null);
BigInt や Symbol のラッパーオブジェクトの取得
BigInt()
およびSymbol()
コンストラクターは、new
で呼び出されるとエラーを発生します。これは、プリミティブ値ではなくラッパーオブジェクトを作成してしまうというよくある間違いを防ぐためです。これらの型のラッパーオブジェクトを作成する唯一の方法は、これらの型でObject()
を呼び出すことです。
js
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"
仕様書
Specification |
---|
ECMAScript® 2026 Language Specification # sec-object-constructor |