dr.Brain

doctor Brain

мир глазами веб-разработчика

Для чего нужен Symbol()

назначение объекта-обертки Symbol() в JavaScript

dr.Brain

время чтения 1 мин.

Photo by Alexandru Acea on Unsplash

В этой небольшой статье мы разберем, чем может быть полезен Symbol() в JavaScript.

Данные примитивного типа symbol анонимны, уникальны и неизменяемы. По сути, экземпляр таких данных является уникальным идентификатором, созданным с помощью объекта-обертки Symbol():

let firstSymbol = Symbol();
typeof(firstSymbol); //symbol

Для экземпляра данных symbol можно создать описание, используемое для отладки, но не для доступа к самому символу. Например, так:

let dummy = Symbol("dummy");
console.log(dummy);   // Symbol(dummy)

Чем полезны символы?

Символы позволяют создавать “скрытые” свойства объектов, которые невозможно перезаписать или просмотреть из других частей кода.

Символы можно использовать в качестве уникальных значений вместо строчных и числовых данных:

let statuses = {
    PENDING: Symbol('Pending'),
    REQUESTED: Symbol('Requested'),
    IN_PROGRESS: Symbol('In progress'),
    COMPLETED: Symbol('Completed'),
    ERROR: Symbol('Error')
};

// complete a task
myObject.setStatus(statuses.COMPLETED);

Еще символ можно применить, как вычисляемое имя свойства объетка:

let status = Symbol('status');
let task = {
    [status]: statuses.REQUESTED,
    description: 'Request'
};

console.log(task);
//{description: "Request", Symbol(status): Symbol(Requested)}

Наконец, напоминаю, что символ - это всего-лишь уникальный идентификатор, и существует множество других полезных способов для его использования в коде.


Спасибо за внимание.

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.