【JavaScript ECMAScript】Object::Object.getOwnPropertySymbols静的メソッドの使い方
Object.getOwnPropertySymbols()静的メソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Object.getOwnPropertySymbols()メソッドは、指定されたJavaScriptオブジェクトが直接所有するシンボルプロパティの配列を返すメソッドです。
JavaScriptのオブジェクトは、データや機能を「プロパティ」として持ちます。これらのプロパティは通常、文字列の名前を持ちますが、ECMAScript 2015(ES6)以降では「シンボル」という特殊な値もプロパティ名として利用できるようになりました。シンボルは、作成されるたびに常に一意の値を持つため、既存のプロパティ名と衝突することなく、オブジェクトに新しいプロパティを追加する用途や、内部的な情報を保持する目的で活用されます。
このメソッドは、引数として一つのオブジェクトを受け取ります。そして、そのオブジェクトが「直接」持っている、つまり継承されたものではないシンボル型のプロパティのみをすべて探し出し、それらをSymbol値の配列として返します。
Object.keys()やObject.getOwnPropertyNames()といった他のメソッドが、文字列をキーとするプロパティ名を取得するのに対し、Object.getOwnPropertySymbols()は、その名の通りシンボルをキーとするプロパティ名のみに特化しています。これにより、一般的な列挙からは見えにくいシンボルプロパティの内容を正確に確認することが可能になります。オブジェクトが持つユニークな内部情報を調査したり、フレームワークなどで定義された特殊なプロパティを扱ったりする際に、このメソッドは非常に有用です。
構文(syntax)
1const myObject = { 2 prop1: 'value1', 3 [Symbol('id')]: 123, 4 prop2: 'value2', 5 [Symbol('name')]: 'example' 6}; 7 8Object.getOwnPropertySymbols(myObject);
引数(parameters)
obj
- obj: object: シンボルプロパティを取得したいオブジェクト
戻り値(return)
Symbol[]
指定されたオブジェクトが持つ、シンボル(Symbol)型のプロパティのみを配列として取得します。