JavaScriptオブジェクトのプロパティ記述子についての紹介
JavaScriptのオブジェクトのプロパティ記述子は、オブジェクトのプロパティの特性を記述するためのオブジェクトです。それぞれのオブジェクトのプロパティには、書き込み可能性(writable)、列挙可能性(enumerable)、設定可能性(configurable)、値(value)などの特性があります。
属性記述子には、データ記述子とアクセサ記述子の2種類があります。
- データディスクリプタ:
- value:特性の値。
- 「書き込み可能:属性の値を書き込みできるかどうか(true/false)。」
- enumerable: プロパティが列挙可能かどうか(true/false)、つまり、for … in ループで反復処理できるかどうか。
- configurable:プロパティが設定可能かどうか(true/false)、つまりdeleteを使用して特性を削除または変更できるかどうか。
- アクセサ記述子:
- get:データを取得するためのgetter関数。属性値を取得する際に呼び出されます。
- set:属性を設定するためのsetter関数、プロパティの値を設定する際に呼び出されます。
- enumerable: プロパティが列挙可能かどうか。
- 属性が設定可能かどうか。
`例えば、Object.getOwnPropertyDescriptor(obj, prop)メソッドを使って、プロパティの記述子を取得することができます。`
const obj = {
name: 'John',
age: 25
};
const descriptor = Object.getOwnPropertyDescriptor(obj, 'name');
console.log(descriptor);
結果は次の通りです:
{
value: 'John',
writable: true,
enumerable: true,
configurable: true
}
この例は、オブジェクトのプロパティ記述子を取得する方法を示しています。nameプロパティは書き込み可能で列挙可能、設定可能であることがわかります。