Object コンストラクタはオブジェクトラッパーを 1 つ生成します。

構文

// オブジェクトの初期化、あるいはオブジェクトリテラルとして
{ [ nameValuePair1[, nameValuePair2[, ...nameValuePairN] ] ] }

// コンストラクタとして呼び出す場合
new Object([value])

引数

nameValuePair1, nameValuePair2, ... nameValuePairN
名前(文字列)と値(任意の値)からなる組。名前と値はコロンで区切る。
value
任意の値。

説明

Object コンストラクタは与えられた値のオブジェクトラッパーを生成します。値が nullundefined の場合、空のオブジェクトを生成して返します。それ以外の場合、与えられた値に対応する型のオブジェクトを返します。値が元々オブジェクトだった場合には、その値自体を返します。

コンストラクタではないコンテキストで呼び出されたときは、Object は、new Object() と同じように振舞います。

object initializer / literal の構文もご覧ください。

Object コンストラクタプロパティ

Object.length
1 という値を持ちます。
Object.prototype
これを使うと、Object 型を持つすべてのオブジェクトにプロパティを追加できます。

Object コンストラクタメソッド

Object.assign()
1 個以上のソースオブジェクトについて、その直接所有 (own)で列挙可能なプロパティの値をすべてターゲットオブジェクトにコピーします。
Object.create()
指定されたプロトタイプオブジェクトとプロパティから、新しいオブジェクトを生成します。
Object.defineProperty()
記述子引数の指定に従って 、名前付きプロパティをオブジェクトに追加します。
Object.defineProperties()
記述子引数の指定に従って、複数の名前付きプロパティをオブジェクトに追加します。
Object.entries()
指定したオブジェクトの 直接所有 (own)で列挙可能な文字列プロパティのすべての [key, value] ペアを含む配列を返します。
Object.freeze()
指定したオブジェクトを凍結 (freeze) し、オブジェクトのいかなるプロパティも変更または削除できないようにします。
Object.getOwnPropertyDescriptor()
指定したオブジェクトの名前付きプロパティに対応するプロパティ記述子を返します。
Object.getOwnPropertyDescriptors()
オブジェクトのすべての直接所有 (own)のプロパティの記述子を含むオブジェクトを返します。
Object.getOwnPropertyNames()
指定したオブジェクトの 直接所有 (own) で列挙可能および列挙不可なすべてのプロパティの名前を、配列として返します。
Object.getOwnPropertySymbols()
指定したオブジェクト上に直接存在するすべてのシンボルプロパティからなる配列を返します。
Object.getPrototypeOf()
指定したオブジェクトのプロトタイプを返します。
Object.is()
2 つの値が区別可能かどうか(つまり同じものかどうか)を比較します。
Object.isExtensible()
オブジェクトに対する拡張 (extension) が許可されているかを判定します。
Object.isFrozen()
オブジェクトが凍結 (freeze) されているかを判定します。
Object.isSealed()
オブジェクトが封印 (seal) されているかを判定します。
Object.keys()
指定したオブジェクトの 直接所有 (own) で列挙可能なプロパティの名前をすべて含む配列を返します。
Object.preventExtensions()
オブジェクトに対するあらゆる拡張 (extension) を禁止します。
Object.seal()
オブジェクトを封印 (seal) し、オブジェクトのプロパティの削除を禁止します。
Object.setPrototypeOf()
プロトタイプ(すなわち、内部の [[Prototype]] プロパティ)を設定します。
Object.values()
指定したオブジェクトの 直接所有 (own) で列挙可能な文字列プロパティのすべてに対応する値を含む配列を返します。

Object インスタンスと Object プロトタイプオブジェクト

JavaScript におけるすべてのオブジェクトは Object に由来します。すべてのオブジェクトは Object.prototype からメソッドとプロパティを継承していますが、それらは上書きされている可能性があります。例えば、他のコンストラクタのプロトタイプは constructor プロパティを上書きしており、それぞれが toString メソッドを提供しています。Object のプロトタイプオブジェクトへの変更は、その変更に関連するプロパティとメソッドがプロトタイプチェーンによってさらに上書きされている場合を除いて、すべてのオブジェクトに影響します。

プロパティ

Object.prototype.constructor
オブジェクトのプロトタイプを生成する関数への参照を返します。
Object.prototype.__proto__
オブジェクトをインスタンス化する際にプロトタイプとして使用するオブジェクトへのポインタです。
Object.prototype.__noSuchMethod__
未定義のオブジェクトメンバーがメソッドとして呼び出された際に実行される関数を定義します。
Object.prototype.__count__
ユーザーが定義したオブジェクト上に直接存在する列挙可能プロパティの数を返すのに使用されていましたが、この機能は削除されました。
Object.prototype.__parent__
オブジェクトのコンテキストを表すポインタでしたが、この機能は削除されました。

メソッド

Object.prototype.__defineGetter__()
指定したプロパティに、アクセスの際に実行されて戻り値を返す関数を関連付けます。
Object.prototype.__defineSetter__()
指定したプロパティに、設定の際に実行されてプロパティを変更する関数を関連付けます。
Object.prototype.__lookupGetter__()
__defineGetter__() メソッドによって特定のプロパティに関連付けされた関数を返します。
Object.prototype.__lookupSetter__()
__defineSetter__() メソッドによって特定のプロパティに関連付けされた関数を返します。
Object.prototype.hasOwnProperty()
指定したプロパティが、プロトタイプチェーンを通じて継承されたものではなくオブジェクトが直接持っているプロパティかどうかを示す真偽値を返します。
Object.prototype.isPrototypeOf()
指定したオブジェクトが、このメソッドを呼び出した元であるオブジェクトのプロトタイプチェーンにあるかどうかを示す真偽値を返します。
Object.prototype.propertyIsEnumerable()
内部の ECMAScript [[Enumerable]] 属性 の設定状態を示す真偽値を返します。
Object.prototype.toSource()
このメソッドの呼び出し元オブジェクトを表すオブジェクトリテラルからなるソース文字列を返します。この値を使って新しいオブジェクトを作成できます。
Object.prototype.toLocaleString()
toString() を呼び出します。
Object.prototype.toString()
指定したオブジェクトを表す文字列を返します。
Object.prototype.unwatch()
オブジェクトのプロパティから代入処理を監視するウォッチポイントを取り除きます。
Object.prototype.valueOf()
指定したオブジェクトのプリミティブ値を返します。
Object.prototype.watch()
オブジェクトのプロパティに代入処理を監視するウォッチポイントを追加します。
Object.prototype.eval()
指定されたオブジェクトが持つコンテキスト内で JavaScript コードの文字列を評価するメソッドでしたが、この機能は削除されました。

オブジェクトからプロパティを消す

Object 自身には直接所有 (own)プロパティを消す (例  Map.prototype.delete()のような) メソッドはありません。これを行うには delete operator を使います。

使用例

undefinednull データ型を与えられた Object を使用する

次の例は、o に空の Object オブジェクトを格納します :

var o = new Object();
var o = new Object(undefined);
var o = new Object(null);

Boolean オブジェクトの生成に Object を使用する

次の例は、oBoolean オブジェクトを格納します :

// o = new Boolean(true); に同じ
var o = new Object(true);
// to o = new Boolean(false); に同じ
var o = new Object(Boolean());

仕様

仕様 策定状況 コメント
ECMAScript 1st Edition (ECMA-262) 標準 初期定義。JavaScript 1.0 にて実装。
ECMAScript 5.1 (ECMA-262)
Object の定義
標準  
ECMAScript 2015 (6th Edition, ECMA-262)
Object の定義
標準 Object.assign、Object.getOwnPropertySymbols、Object.setPrototypeOf を追加。
ECMAScript Latest Draft (ECMA-262)
Object の定義
ドラフト Object.entries、Object.values、Object.getOwnPropertyDescriptors を追加。

ブラウザー実装状況

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本対応 あり あり1 あり あり あり
prototype あり あり1 あり あり あり
__count__ なし なし なし なし なし なし
__noSuchMethod__ なし なし1 — 43 なし なし なし
__parent__ なし なし なし なし なし なし
__proto__ あり あり111 あり あり
constructor あり あり1 あり あり あり
assign45 あり34 なし329
create5 あり4911.65
defineProperties5 あり4911.65
defineProperty5 あり49111.65.12
entries541447 なし4110.1
freeze6 あり49125.1
getNotifier36 — 52 なし なし なし なし なし
getOwnPropertyDescriptor5 あり48125
getOwnPropertyDescriptors541550 なし4110
getOwnPropertyNames5 あり49125
getOwnPropertySymbols38 あり36 なし259
getPrototypeOf5 あり3.5912.15
is30 あり22 なし あり9
isExtensible6 あり49125.1
isFrozen6 あり49125.1
isSealed6 あり49125.1
keys5 あり49125
observe36 — 52 なし なし なし なし なし
preventExtensions6 あり49125.1
__defineGetter__ あり あり1311 あり あり
__defineSetter__ あり あり1311 あり あり
__lookupGetter__ あり あり111 あり あり
__lookupSetter__ あり あり111 あり あり
eval なし なし なし なし なし なし
hasOwnProperty あり あり1 あり あり あり
isPrototypeOf あり あり あり あり あり あり
propertyIsEnumerable あり あり あり あり あり あり
toLocaleString あり あり1 あり あり あり
toSource なし なし1 なし なし なし
toString あり あり1 あり あり あり
unwatch なし なし1 — 58 なし なし なし
valueOf あり あり1 あり あり あり
watch なし なし1 — 58 なし なし なし
seal6 あり49125.1
setPrototypeOf34 あり3111 あり9
unobserve36 — 52 なし なし なし なし なし
values541447 なし4110.1
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
基本対応 あり あり あり4 あり あり あり
prototype あり あり あり4 あり あり あり
__count__ なし なし なし なし なし なし なし
__noSuchMethod__ なし なし なし4 — 43 なし なし なし
__parent__ なし なし なし なし なし なし なし
__proto__ あり あり あり4 あり あり あり
constructor あり あり あり4 あり あり あり
assign なし45 あり34 なし あり5.0
create あり あり あり411.5 あり あり
defineProperties あり あり あり411.5 あり あり
defineProperty あり あり あり411.5 あり あり
entries5454 あり4741 なし6.0
freeze あり あり あり4 あり あり あり
getNotifier なし なし なし なし なし なし なし
getOwnPropertyDescriptor あり あり あり4 あり あり あり
getOwnPropertyDescriptors ?54 あり50 ? ?6.0
getOwnPropertyNames あり あり あり4 あり あり あり
getOwnPropertySymbols5.138 あり36259 あり
getPrototypeOf あり あり あり4 あり あり あり
is あり あり あり22 あり9 あり
isExtensible あり あり あり4 あり あり あり
isFrozen あり あり あり4 あり あり あり
isSealed あり あり あり4 あり あり あり
keys あり あり あり4 あり あり あり
observe なし なし なし なし なし なし なし
preventExtensions あり あり あり4 あり あり あり
__defineGetter__ あり あり あり4 あり あり あり
__defineSetter__ あり あり あり4 あり あり あり
__lookupGetter__ あり あり あり4 あり あり あり
__lookupSetter__ あり あり あり4 あり あり あり
eval なし なし なし なし なし なし なし
hasOwnProperty あり あり あり4 あり あり あり
isPrototypeOf あり あり あり あり あり あり あり
propertyIsEnumerable あり あり あり あり あり あり あり
toLocaleString あり あり あり4 あり あり あり
toSource なし なし なし4 なし なし なし
toString あり あり あり4 あり あり あり
unwatch なし なし なし4 — 58 なし なし なし
valueOf あり あり あり4 あり あり あり
watch なし なし なし4 — 58 なし なし なし
seal あり あり あり4 あり あり あり
setPrototypeOf あり あり あり31 あり あり あり
unobserve なし なし なし なし なし なし なし
values5454 あり474110.36.0

1. Also supported in Internet Explorer 8, but only on DOM objects and with some non-standard behaviors.

2. Also supported in Safari 5, but not on DOM objects.

3. Starting with Firefox 48, this method can no longer be called at the global scope without any object. A TypeError will be thrown otherwise. Previously, the global object was used in these cases automatically, but this is no longer the case.

関連情報

ドキュメントのタグと貢献者

最終更新者: Uemmra3,