JavaScript метод Object.getOwnPropertySymbols()

Определение и применение

JavaScript метод getOwnPropertySymbols() возвращает массив, состоящий из всех символьных (Symbol) свойств переданного объекта (массив символов конкретного объекта).

null и undefined вызывают TypeError; другие примитивы преобразуются в объекты-обёртки. Строка имеет собственные перечислимые индексные свойства.

Поддержка браузерами

Спецификация: ecma262

Поддерживается во всех основных браузерах с 2015 года.

Показать браузеры
Совместимостьjavascript.builtins.Object.getOwnPropertySymbols
ВозможностьКомпьютерыМобильные
ChromeEdgeFirefoxOperaSafariChrome AndroidFirefox for AndroidOpera AndroidSafari on iOSSamsung BrowserWebView AndroidWebView on iOS
getOwnPropertySymbols✓38✓12✓36✓25✓9✓38✓36✓25✓9✓3.0✓38✓9

поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31

JavaScript синтаксис

JavaScript
Object.getOwnPropertySymbols( obj );

Спецификация

ECMAScript: Object.getOwnPropertySymbols()

Значения параметров

Object: справочные сведения
Параметр Описание
obj Целевой объект в котором производиться поиск символьных (Symbol) свойств. Обязательное значение.

Примеры, попробуйте сами

В примере «Символьные ключи объекта» показан результат вызова метода.

Символьные ключи объекта

Измените свойства исходного объекта и сравните результат до и после вызова метода.

index.html
HTML
<!doctype html>
<html lang="ru">
  <head>
    <meta charset="UTF-8" />
    <title>Символьные ключи объекта</title>
  </head>
  <body>
    <p>Результат выполнения выводится в консоль.</p>
  </body>
</html>
main.js
JavaScript
let myObj = {} // инициализируем переменную, содержащую объект
let first = Symbol('mySymbol') // инициализируем переменную, содержащую символ
let second = Symbol.for('mySymbol2') // инициализируем переменную, содержащую символ

// добавляем созданные символы в объект
myObj[first] = 'localSymbol'
myObj[second] = 'globalSymbol'

console.log(myObj) // {} — вывод примера не показывает символьные ключи

// инициализируем переменную, содержащую массив, состоящий из всех символьных свойств переданного объекта
let objectSymbols = Object.getOwnPropertySymbols(myObj)

console.log(objectSymbols.length) // 2
console.log(objectSymbols.map(String)) // ["Symbol(mySymbol)", "Symbol(mySymbol2)"]
console.log(myObj[objectSymbols[0]]) // localSymbol