JavaScript/Object/getOwnPropertyDescriptors

Object.getOwnPropertyDescriptors() は、指定されたオブジェクトのすべての独自プロパティのプロパティディスクリプタを含むオブジェクトを返すメソッドです。このメソッドは、各プロパティの属性(value, writable, enumerable, configurable, get, set など)を含むオブジェクトを返します[1]

構文

編集
Object.getOwnPropertyDescriptors(obj)
  • obj: プロパティディスクリプタを取得する対象のオブジェクト。

すべてのプロパティディスクリプタを取得するプログラム

編集

以下のプログラムは、Object.getOwnPropertyDescriptors() を使用してすべてのプロパティディスクリプタを取得します。

const obj = {
  a: 1,
  b: 2
};

const descriptors = Object.getOwnPropertyDescriptors(obj);

console.log(descriptors);
// 出力:
// {
//   a: {
//     value: 1,
//     writable: true,
//     enumerable: true,
//     configurable: true
//   },
//   b: {
//     value: 2,
//     writable: true,
//     enumerable: true,
//     configurable: true
//   }
// }

このプログラムでは、Object.getOwnPropertyDescriptors() を使用して obj オブジェクトのすべての独自プロパティのプロパティディスクリプタを取得しています。

ゲッターとセッターを持つプロパティのディスクリプタを取得するプログラム

編集

以下のプログラムは、Object.getOwnPropertyDescriptors() を使用してゲッターとセッターを持つプロパティのディスクリプタを取得します。

const obj = {
  _a: 1,
  get a() {
    return this._a;
  },
  set a(value) {
    this._a = value;
  }
};

const descriptors = Object.getOwnPropertyDescriptors(obj);

console.log(descriptors);
// 出力:
// {
//   _a: {
//     value: 1,
//     writable: true,
//     enumerable: true,
//     configurable: true
//   },
//   a: {
//     get: [Function: get a],
//     set: [Function: set a],
//     enumerable: true,
//     configurable: true
//   }
// }

このプログラムでは、Object.getOwnPropertyDescriptors() を使用して obj オブジェクトのすべての独自プロパティのプロパティディスクリプタを取得しています。a プロパティはゲッターとセッターを持つため、getset が含まれています。

注意点

編集
  • 独自プロパティ: Object.getOwnPropertyDescriptors() は、指定されたオブジェクトの独自プロパティのみを対象とします。継承されたプロパティは含まれません。
  • シンボルプロパティ: シンボルプロパティのディスクリプタも取得できます。
  • 空のオブジェクト: 指定されたオブジェクトが空の場合、空のオブジェクトを返します。

脚註

編集
  1. ^ これは、オブジェクトのすべてのプロパティの詳細な情報を取得するために使用されます。

外部リンク

編集