Практическое применение типа Symbol
Валерий Карпов написал статью, посвящённую Symbol — "A Practical Guide to Symbols in JavaScript".
Symbol — это новый тип данных, который появился в ES2015. Символы могут использоваться в качестве ключа объекта. Они создаются с помощью функции Symbol()
и Symbol.for()
, которые принимают на вход стоку-описание.
При создании символов с помощью Symbol()
они гарантировано будут разными. Благодаря этой особенности можно отчётливо разграничивать пользовательские и программные данные. Например, в ES2015 символ Symbol.iterator
используется для задания функции, которая будет вызываться при использовании for...of
. При создании такого итератора его никто не сможет изменить по ошибке. При использовании Symbol.for('name')
создаваемый символ сохраняется в глобальный реестр и становится доступен из разных мест программы при повторном вызове Symbol.for('name')
.
Статья небольшая, но хорошая. Рекомендую прочитать, если эта тема прошла мимо вас.
http://thecodebarbarian.com/a-practical-guide-to-symbols-in-javascript.html