We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

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 Latest Draft (ECMA-262)
Object.getOwnPropertyDescriptors の定義
ドラフト ECMAScript 2017 で初期定義。

ブラウザ実装状況

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

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

関連項目

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

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