JavaScript/Object/getOwnPropertyDescriptor

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

構文

編集
Object.getOwnPropertyDescriptor(obj, prop)
  • obj: プロパティディスクリプタを取得する対象のオブジェクト。
  • prop: プロパティディスクリプタを取得するプロパティの名前(文字列またはシンボル)。

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

編集

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

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

const descriptor = Object.getOwnPropertyDescriptor(obj, 'a');

console.log(descriptor);
// 出力:
// {
//   value: 1,
//   writable: true,
//   enumerable: true,
//   configurable: true
// }

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

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

編集

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

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

const descriptor = Object.getOwnPropertyDescriptor(obj, 'a');

console.log(descriptor);
// 出力:
// {
//   get: [Function: get a],
//   set: [Function: set a],
//   enumerable: true,
//   configurable: true
// }

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

注意点

編集
  • 存在しないプロパティ: 指定されたプロパティが存在しない場合、undefined を返します。
  • シンボルプロパティ: シンボルプロパティのディスクリプタも取得できます。
  • 継承されたプロパティ: 継承されたプロパティのディスクリプタは取得できません。

脚註

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

外部リンク

編集