Object() コンストラクター
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.
Object()
コンストラクターは、入力されたものをオブジェクトに変換します。その動作は入力したものの型によって異なります。
構文
引数
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® 2025 Language Specification # sec-object-constructor |
ブラウザーの互換性
BCD tables only load in the browser