Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Node.js24.x】Object::getOwnPropertyDescriptor()メソッドの使い方

getOwnPropertyDescriptorメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

Object.getOwnPropertyDescriptorメソッドは、指定されたオブジェクトが直接所有しているプロパティの、詳細な設定情報(プロパティディスクリプタ)を取得するために使用するメソッドです。プロパティディスクリプタとは、単にプロパティの値だけでなく、そのプロパティが持つ特性や振る舞いを定義する属性の集合体です。具体的には、プロパティの値そのもの(value)、その値が変更可能か(writable)、オブジェクトを列挙する際に現れるか(enumerable)、そしてプロパティの属性自体を再定義したり削除したりできるか(configurable)といった情報が含まれます。

このメソッドは、第一引数に対象のオブジェクトを、第二引数に情報を取得したいプロパティの名称を文字列で指定します。戻り値として、指定されたプロパティのディスクリプタをオブジェクトとして返します。もし対象のオブジェクトがそのプロパティを直接所有していない場合、またはそのようなプロパティが存在しない場合は、undefinedが返されます。

重要な点として、getOwnPropertyDescriptorはオブジェクト自身のプロパティのみを対象とし、プロトタイプチェーンを介して継承されたプロパティの情報は取得しません。この機能は、オブジェクトのプロパティの挙動を深く理解したい場合や、プロパティの持つ特性を動的に確認する必要がある場面で非常に有用です。例えば、特定のプロパティが書き換え可能かどうかをプログラムで判断したい場合などに活用できます。

構文(syntax)

const myObject = {
  data: 'Hello'
};

const descriptor = Object.getOwnPropertyDescriptor(myObject, 'data');
console.log(descriptor);
// { value: 'Hello', writable: true, enumerable: true, configurable: true }

const nonExistentDescriptor = Object.getOwnPropertyDescriptor(myObject, 'missing');
console.log(nonExistentDescriptor); // undefined

引数(parameters)

obj, prop

  • obj: object: プロパティディスクリプタを取得したいオブジェクト
  • prop: string | symbol: 取得したいプロパティの名前またはシンボル

戻り値(return)

PropertyDescriptor | undefined

指定されたプロパティの記述子オブジェクト、またはプロパティが存在しない場合は undefined を返します。

関連コンテンツ

関連プログラミング言語