2013-07-20 2 views
6

Что такое «Символ» javascript type as mentioned in this ECMAScript 6 draft specification?JavaScript Тип символа: (нестроковые объектные ключи)

Цитирую спецификации:

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

Все возможные значения символов уникальны и неизменяемы.

Значения символов имеют один наблюдаемый атрибут, называемый [[Private]], неизменяемым значением которого является либо true, либо false. Частным символом является значение Symbol, чей атрибут [[Private]] имеет значение true.

Я думал, что ключи объектов были строками, и я не один. Цитирую this accepted SO answer:

... ключи объекта всегда струна ...

Не могли бы вы объяснить, что тип символ, и продемонстрировать его использование. Я пытаюсь понять спецификацию.

Спасибо!

+1

Это спецификация ES6, не уверен, но посмотрите, поможет ли это: https://github.com/dherman/tc39-codex-wiki/blob/master/data/es6/symbols/index.md – elclanrs

ответ

6

Я думал, что ключи объекта были только

Вы правы струнные, но это было верно только для ECMAScript 5. ES 6/гармония - это проект для чего-то нового!

Я пытаюсь разобраться в спецификации

Это только проект, rapidly changing. Как используются символы и как они могут быть созданы произвольными сценариями, похоже, пока не установлены (сканирование через versions для изменений).

Если вы прокрутите вниз до самого конца that document (даже ниже приложение F), вы, например, будете видеть Раздел 8.4.4: Символ экзотических объектов, которые были перемещены там. В нем указано

Объекты экзотического символа предоставляют альтернативные определения для всех основных внутренних методов.

Например, вы можете использовать их в section 8.1.7.4 Well-Known Symbols and Intrinsics.Для предлагаемого использования (и все еще существующих проблем/открытых вопросов) Symbol конструкторы имеют вид thesestrawman страниц или this wiki site.

+0

Спасибо. Это было информативно. –

0

Symbol является новым дополнением к языку, предложенной в рамках ECMAScript 6:

Текущая работа на ECMAScript ™

Работа на будущее ECMAScript ™ изданий продолжается в рамках ранее объявленного ECMAScript ™ «Гармония "проект. Более подробная информация о текущей работе над ECMAScript «Гармония» описана в этой вики. Шестой выпуск стандарта находится в стадии разработки с намеченной датой декабря 2013 года для завершения.

+0

Примеры использования? –

+1

См. Раздел [8.1.7.4] (http://people.mozilla.org/~jorendorff/es6-draft.html#sec-8.1.7.4) для встроенных символов – Barmar

Смежные вопросы