この記事は編集レビューを必要としています。ぜひご協力ください。
Object
コンストラクタはオブジェクトラッパーを 1 つ生成します。
構文
// オブジェクトの初期化、あるいはオブジェクトリテラルとして
{ [ nameValuePair1[, nameValuePair2[, ...nameValuePairN] ] ] }
// コンストラクタとして呼び出す場合
new Object([value])
引数
nameValuePair1, nameValuePair2, ... nameValuePairN
- 名前(文字列)と値(任意の値)からなる組。名前と値はコロンで区切る。
value
- 任意の値。
説明
Object
コンストラクタは与えられた値のオブジェクトラッパーを生成します。値が null
や undefined
の場合、空のオブジェクトを生成して返します。それ以外の場合、与えられた値に対応する型のオブジェクトを返します。値が元々オブジェクトだった場合には、その値自体を返します。
コンストラクタではないコンテキストで呼び出されたときは、Object
は、new Object()
と同じように振舞います。
オブジェクト初期化子 / リテラル構文 もご覧ください。
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.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 コードの文字列を評価するメソッドでしたが、この機能は削除されました。
使用例
undefined
と null
データ型を与えられた Object
を使用する
次の例は、o
に空の Object
オブジェクトを格納します :
var o = new Object();
var o = new Object(undefined);
var o = new Object(null);
Boolean
オブジェクトの生成に Object
を使用する
次の例は、o
に Boolean
オブジェクトを格納します :
// 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 2017 Draft (ECMA-262) Object の定義 |
ドラフト | Object.entries、Object.values を追加。 |
ブラウザ実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) |
機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) | (有) |
関連情報
ドキュメントのタグと貢献者
タグ:
このページの貢献者:
xxxkurosukexxx,
taiyaki32p,
x2357,
teoli,
ethertank,
kohei.yoshino,
yyss,
saneyuki_s,
Potappo,
Yuichirou,
Mgjbot,
Okome
最終更新者:
xxxkurosukexxx,