【Node.js24.x】Object::getOwnPropertySymbols()メソッドの使い方
getOwnPropertySymbolsメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
getOwnPropertySymbolsメソッドは、指定されたオブジェクトが直接所有するすべてのシンボルプロパティのキーを配列として返すメソッドです。JavaScriptにおけるシンボルは、ECMAScript 2015(ES6)で導入された新しいプリミティブ型で、他のプロパティ名と衝突することのないユニークな識別子として利用されます。
このメソッドは、Objectクラスに属しており、Object.getOwnPropertySymbols(obj)のように、シンボルプロパティを取得したいオブジェクトobjを引数に渡して使用します。引数に指定されたオブジェクトが持つシンボルキーを要素とする配列が戻り値として返されます。
通常のオブジェクトプロパティは文字列をキーとして持ち、for...inループやObject.keys()メソッドでそのキーを列挙することができます。しかし、シンボルプロパティはこれらの一般的な方法では取得できません。シンボルは通常、既存のプロパティ名と衝突せずにオブジェクトにメタデータや特別な挙動を追加したい場合などに用いられるため、意図的に列挙されないよう設計されています。
getOwnPropertySymbolsメソッドは、このように隠されたシンボルプロパティを正確に特定し、操作するために不可欠な手段を提供します。これにより、オブジェクトが内部的に利用しているシンボルキーを確認したり、シンボルプロパティの値にアクセスしたりすることが可能になります。システム開発において、オブジェクトの挙動を深く理解し、必要に応じてカスタマイズする際に役立つ重要なメソッドです。
構文(syntax)
const myObject = {};
const sym1 = Symbol('description1');
const sym2 = Symbol('description2');
myObject[sym1] = 'value for sym1';
myObject[sym2] = 'value for sym2';
myObject.stringKey = 'value for string key';
const symbols = Object.getOwnPropertySymbols(myObject);
console.log(symbols);
引数(parameters)
obj
- obj: object: プロパティシンボルを取得したいオブジェクト
戻り値(return)
Symbol[]
指定されたオブジェクトが持つ、自身で定義されたシンボル(Symbol)型のプロパティのキーを格納した配列を返します。