この記事は編集レビューを必要としています。ぜひご協力ください。
Object.getOwnPropertyDescriptors()
メソッドは、指定したオブジェクトのすべてのプロパティディスクリプタを返します。
構文
Object.getOwnPropertyDescriptors(obj)
パラメーター
obj
- すべてのプロパティディスクリプタを取得するオブジェクト。
戻り値
オブジェクトのすべてのプロパティディスクリプタを含むオブジェクト。プロパティがない場合、空オブジェクトの可能性がある。
説明
このメソッドは、オブジェクトのすべての独自のプロパティの正確な記述の検査を可能にします。 JavaScript では、プロパティは文字列値による名前とプロパティディスクリプタで構成されています。プロパティディスクリプタの型と属性についての詳細情報は、Object.defineProperty()
で確認してください。
プロパティディスクリプタ は、次の属性のいくつかを持ちます:
value
- プロパティに関連付けられた値(データディスクリプタのみ)。
writable
- プロパティに関連付けられた値が変更可能な場合のみ、
true
(データディスクリプタのみ)。 get
- プロパティのゲッターとしての役割を果たす関数。ゲッターがない場合は、
undefined
(アクセッサディスクリプタのみ)。 set
- プロパティのセッターとしての役割を果たす関数。セッターがない場合は、
undefined
(アクセッサディスクリプタのみ)。 configurable
- このプロパティディスクリプタの型が変更可能で、対応するオブジェクトからプロパティを削除可能な場合のみ、
true
。 enumerable
- このプロパティが対応するオブジェクトでプロパティの列挙中に現れる場合のみ、
true
。
例
浅いコピーの生成
Object.assign()
メソッドは、ソースオブジェクトから対象のオブジェクトに対して enumerable とプロパティのみコピーできる一方、2 つの未知のオブジェクト間の浅いコピーのために、このメソッドと Object.create()
を使用できます:
Object.create( Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj) );
仕様
仕様 | 状態 | コメント |
---|---|---|
ECMAScript 2017 Draft (ECMA-262) Object.getOwnPropertyDescriptors の定義 |
ドラフト | ES8 / ECMAScript 2017 で初期定義。 |
ブラウザ実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | ? | 50 (50) | ? | ? | ? |
機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本サポート | ? | ? | 50.0 (50) | ? | ? | ? |