0

В JS можно создать уникальный идентификатор с помощью Symbol(), например

children: HTMLCollection(2)
  0: input
  1: div
  length: 2
  __proto__: HTMLCollection
    ...
    constructor: ƒ HTMLCollection()
    Symbol(Symbol.iterator): ƒ values()
    Symbol(Symbol.toStringTag): "HTMLCollection"
    ...
    __proto__: Object

Для чего это может понадобится если можно использовать Object? И как его можно привести например к такому виду?

Foo(2)
  0: true
  1: 1
  length: 2
  __proto__: Foo
    ...
    constructor: ƒ Foo()
    Symbol(Symbol.iterator): ƒ values()
    Symbol(Symbol.toStringTag): "Foo"
    ...
    __proto__: Object
  • что значит можно создать свой тип данных? HTMLCollection - это интерфейс предоставляемый браузером. И как ко всему этому относится Symbol? – Grundy Dec 05 '18 at 18:07
  • @Grundy HTMLCollection взял просто для наглядности, "свой тип данных" сейчас перефразирую – Jarry Roxwell Dec 05 '18 at 18:11
  • 1
    Посмотри вопрос дубликат - судя по всему, это именно то что ты и хотел – Grundy Dec 05 '18 at 18:12
  • @Grundy, да это оно. Прочитал статью ссылка и не могу понять, для какой задачи это может применяться? – Jarry Roxwell Dec 05 '18 at 18:17
  • 1
    Ну, помимо того, что есть, так называемые известные символы, свойства с такими именами могут обрабатываться особенно, это можно использовать как замену приватным полям например – Grundy Dec 05 '18 at 18:23
  • Оказывается ты же и спрашивал :) – Grundy Dec 05 '18 at 19:24

0 Answers0