Object.getOwnPropertySymbols()

Object.getOwnPropertySymbols() メソッドは、与えられたオブジェクト上で直接見つかるシンボルプロパティすべての配列を返します。

構文

Object.getOwnPropertySymbols(obj)

引数

obj
シンボルプロパティが返されるオブジェクトです。

返値

与えられたオブジェクト上で直接見つかるシンボルプロパティすべての配列です。

解説

Object.getOwnPropertyNames() と同様、与えられたオブジェクトのすべてのシンボルプロパティをシンボルの配列として取得することができます。 Object.getOwnPropertyNames() 自体はオブジェクトのシンボルプロパティを含まず、文字列プロパティのみを含むことに注意して下さい。

すべてのオブジェクトが最初に自身のシンボルプロパティを持っているとは限らないので、 Object.getOwnPropertySymbols() は、オブジェクトにシンボルプロパティを設定しない限りは空の配列を返します。

getOwnPropertySymbols の使用

var obj = {};
var a = Symbol('a');
var b = Symbol.for('b');

obj[a] = 'localSymbol';
obj[b] = 'globalSymbol';

var objectSymbols = Object.getOwnPropertySymbols(obj);

console.log(objectSymbols.length); // 2
console.log(objectSymbols);        // [Symbol(a), Symbol(b)]
console.log(objectSymbols[0]);     // Symbol(a)

仕様書

仕様書
ECMAScript (ECMA-262)
Object.getOwnPropertySymbols の定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
getOwnPropertySymbolsChrome 完全対応 38Edge 完全対応 12Firefox 完全対応 36IE 未対応 なしOpera 完全対応 25Safari 完全対応 9WebView Android 完全対応 38Chrome Android 完全対応 38Firefox Android 完全対応 36Opera Android 完全対応 25Safari iOS 完全対応 9Samsung Internet Android 完全対応 3.0nodejs 完全対応 0.12

凡例

完全対応  
完全対応
未対応  
未対応

関連情報