MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Object.getOwnPropertyDescriptors()

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) ? ? ?

関連項目

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

 このページの貢献者: YuichiNukiyama
 最終更新者: YuichiNukiyama,