JavaScript/Object/getOwnPropertySymbols
< JavaScript | Object
Object.getOwnPropertySymbols()
は、指定されたオブジェクトのすべての独自シンボルプロパティのシンボルを配列として返すメソッドです。このメソッドは、シンボルプロパティのみを対象とし、文字列プロパティは含まれません[1]。
構文
編集Object.getOwnPropertySymbols(obj)
obj
: シンボルプロパティを取得する対象のオブジェクト。
例
編集すべての独自シンボルプロパティを取得するプログラム
編集以下のプログラムは、Object.getOwnPropertySymbols()
を使用してすべての独自シンボルプロパティを取得します。
const sym1 = Symbol('a'); const sym2 = Symbol('b'); const obj = { [sym1]: 1, [sym2]: 2, c: 3 }; const symbols = Object.getOwnPropertySymbols(obj); console.log(symbols); // [Symbol(a), Symbol(b)]
このプログラムでは、Object.getOwnPropertySymbols()
を使用して obj
オブジェクトのすべての独自シンボルプロパティを取得しています。c
プロパティは文字列プロパティであるため、結果に含まれません。
シンボルプロパティの値を取得するプログラム
編集以下のプログラムは、Object.getOwnPropertySymbols()
を使用してシンボルプロパティの値を取得します。
const sym1 = Symbol('a'); const sym2 = Symbol('b'); const obj = { [sym1]: 1, [sym2]: 2, c: 3 }; const symbols = Object.getOwnPropertySymbols(obj); symbols.forEach(sym => { console.log(`Symbol: ${sym.toString()}, Value: ${obj[sym]}`); }); // 出力: // Symbol: Symbol(a), Value: 1 // Symbol: Symbol(b), Value: 2
このプログラムでは、Object.getOwnPropertySymbols()
を使用して obj
オブジェクトのすべての独自シンボルプロパティを取得し、その値を表示しています。
注意点
編集- 独自シンボルプロパティ:
Object.getOwnPropertySymbols()
は、指定されたオブジェクトの独自シンボルプロパティのみを対象とします。継承されたシンボルプロパティは含まれません。 - 文字列プロパティ: 文字列プロパティは含まれません。文字列プロパティを取得するには、
Object.getOwnPropertyNames()
を使用します。 - 空の配列: 指定されたオブジェクトにシンボルプロパティがない場合、空の配列を返します。
脚註
編集- ^ これは、オブジェクトのすべての独自シンボルプロパティを取得するために使用されます。
外部リンク
編集