【Node.js24.x】Object::getOwnPropertyDescriptors()メソッドの使い方
getOwnPropertyDescriptorsメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Object.getOwnPropertyDescriptorsメソッドは、指定されたオブジェクトが持つすべての「自身が定義した」プロパティ(継承されたプロパティは含まれません)のディスクリプタを、それぞれに対応するプロパティ名とともに新しいオブジェクトとして取得・返却するメソッドです。
ここでいうプロパティディスクリプタとは、プロパティの値だけでなく、そのプロパティが「書き込み可能か(writable)」「列挙可能か(enumerable)」「設定変更可能か(configurable)」といった詳細な属性情報を記述したオブジェクトのことです。また、getやsetのようなアクセサプロパティの場合、それぞれの関数もディスクリプタに含まれます。
このメソッドは、引数としてプロパティディスクリプタを取得したい対象のオブジェクトを一つ受け取ります。戻り値は、元のオブジェクトのプロパティ名をキーとし、その値として対応するプロパティディスクリプタオブジェクトを持つ、新しいプレーンなオブジェクトです。
Object.getOwnPropertyDescriptorsは、単にプロパティの値をコピーするObject.assign()やスプレッド構文(...)とは異なり、非列挙可能なプロパティやgetter/setterといった特殊なプロパティの属性情報も完全に含めて取得できる点が大きな特徴です。これにより、オブジェクトの完全なコピーを生成したり、既存のオブジェクトのプロパティ設定を詳細に分析・変更したりする際に非常に強力なツールとなります。システムエンジニアを目指す上で、オブジェクトの内部構造を深く理解し、より高度な操作を行うための重要なメソッドと言えるでしょう。
構文(syntax)
1const myObject = { 2 propertyA: 10, 3 propertyB: "text", 4 methodC() { 5 return this.propertyA; 6 } 7}; 8 9const descriptors = Object.getOwnPropertyDescriptors(myObject); 10console.log(descriptors);
引数(parameters)
obj
- obj: object: 監視対象のオブジェクト
戻り値(return)
object
指定されたオブジェクトのすべての自身のプロパティ(継承されたプロパティは除く)についてのプロパティディスクリプタ(プロパティの属性情報)を格納したオブジェクトを返します。