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