この翻訳は不完全です。英語から この記事を翻訳 してください。

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

 

サブクラスの生成

A typical way of creating a subclass is to define the subclass, set its prototype to an instance of the superclass, and then define properties on that instance. This can get awkward especially for getters and setters. Instead, you can use this code to set the prototype:

function superclass() {}
superclass.prototype = {
  // Define your methods and properties here
};
function subclass() {}
subclass.prototype = Object.create(
  superclass.prototype,
  {
    // Define your methods and properties here
  }
);

 

仕様

仕様 状態 コメント
ECMAScript Latest Draft (ECMA-262)
Object.getOwnPropertyDescriptors の定義
ドラフト ECMAScript 2017 で初期定義。
ECMAScript 2017 (ECMA-262)
Object.getOwnPropertyDescriptors の定義
標準  

ブラウザ実装状況

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本対応541550 なし4110
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
基本対応 ?54 あり50 ? ?6.0

 

関連項目

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

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