この記事は翻訳が完了していません。 この記事の翻訳にご協力ください
静的な Reflect.getOwnPropertyDescriptor() メソッドは、Object.getOwnPropertyDescriptor() と似ています。オブジェクトにプロパティが存在する場合、与えられたプロパティのプロパティディスクリプタを返します。一方、プロパティが存在しない場合は、undefined を返します。
構文
Reflect.getOwnPropertyDescriptor(target, propertyKey)
パラメータ
target- プロパティを探す対象のオブジェクト。
propertyKey- 自身のプロパティディスクリプタを取得するためのプロパティ名。
戻り値
プロパティディスクリプタオブジェクト、または undefined。
スローされるエラー
target が Object ではなかった場合、TypeError がスローされる。
説明
Reflect.getOwnPropertyDescriptor オブジェクトにプロパティが存在する場合、与えられたプロパティのプロパティディスクリプタを返します。一方、プロパティが存在しない場合は、undefined を返します。Object.getOwnPropertyDescriptor() との唯一の違いは、非オブジェクトの対象がどのようにバンドルされるかだけです。
例
Reflect.getOwnPropertyDescriptor() を使用する
Reflect.getOwnPropertyDescriptor({x: "hello"}, "x");
// {value: "hello", writable: true, enumerable: true, configurable: true}
Reflect.getOwnPropertyDescriptor({x: "hello"}, "y");
// undefined
Reflect.getOwnPropertyDescriptor([], "length");
// {value: 0, writable: true, enumerable: false, configurable: false}
Object.getOwnPropertyDescriptor() との違い
このメソッドへの最初の引数がオブジェクトではない(プリミティブ)場合、TypeError が引き起こされます。Object.getOwnPropertyDescriptor だと、非オブジェクトである最初の引数は強制的にオブジェクトに変換されます。
Reflect.getOwnPropertyDescriptor("foo", 0);
// TypeError: "foo" は非 null オブジェクトではない
Object.getOwnPropertyDescriptor("foo", 0);
// { value: "f", writable: false, enumerable: true, configurable: false }
仕様
| 仕様 | 状態 | コメント |
|---|---|---|
| ECMAScript 2015 (6th Edition, ECMA-262) Reflect.getOwnPropertyDescriptor の定義 |
標準 | Initial definition. |
ブラウザ実装状況
現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。
この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。
手助けしていただける場合は、こちらから!
| 機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| 基本サポート | 未サポート | 42 (42) | 未サポート | 未サポート | 未サポート |
| 機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| 基本サポート | 未サポート | 未サポート | 42.0 (42) | 未サポート | 未サポート | 未サポート |