Object.getOwnPropertySymbols() メソッドは、与えられたオブジェクト上で直接見つかるシンボルプロパティすべての配列を返します。
このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 https://github.com/mdn/interactive-examples をクローンしてプルリクエストを送信してください。
構文
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 の定義 |
ブラウザーの互換性
このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 https://github.com/mdn/browser-compat-data をチェックアウトしてプルリクエストを送信してください。
Update compatibility data on GitHub
| デスクトップ | モバイル | サーバー | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
getOwnPropertySymbols | Chrome 完全対応 38 | Edge 完全対応 12 | Firefox 完全対応 36 | IE 未対応 なし | Opera 完全対応 25 | Safari 完全対応 9 | WebView Android 完全対応 38 | Chrome Android 完全対応 38 | Firefox Android 完全対応 36 | Opera Android 完全対応 25 | Safari iOS 完全対応 9 | Samsung Internet Android 完全対応 3.0 | nodejs 完全対応 0.12 |
凡例
- 完全対応
- 完全対応
- 未対応
- 未対応