JavaScript метод Object.getOwnPropertySymbols()
Определение и применение
JavaScript метод getOwnPropertySymbols() возвращает массив, состоящий из всех символьных
(Symbol) свойств переданного объекта (массив символов конкретного объекта).
null и undefined вызывают TypeError; другие примитивы преобразуются в
объекты-обёртки. Строка имеет собственные перечислимые индексные свойства.
Поддержка браузерами
Спецификация: ecma262
Поддерживается во всех основных браузерах с 2015 года.
| Возможность | Компьютеры | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
getOwnPropertySymbols | 38 | 12 | 36 | 25 | 9 | 38 | 36 | 25 | 9 | 3.0 | 38 | 9 |
поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31
JavaScript синтаксис
JavaScript
Object.getOwnPropertySymbols( obj );
Спецификация
ECMAScript: Object.getOwnPropertySymbols()
Значения параметров
| Параметр | Описание |
|---|---|
obj |
Целевой объект в котором производиться поиск символьных (Symbol) свойств.
Обязательное значение.
|
Примеры, попробуйте сами
В примере «Символьные ключи объекта» показан результат вызова метода.
Символьные ключи объекта
Измените свойства исходного объекта и сравните результат до и после вызова метода.
index.html
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
Режим чтения