2013-07-08 3 views
5

Node.JS v0.11.3 утверждает, что имеет поддержку символов ECMAScript 6 с флагом --harmony_symbols (см. here). Последний проект saysКак работают символы?

Properties are identified using key values. A key value is either an ECMAScript String value or a Symbol value.

Я попытался следующий пример

var mySymbol = new Symbol('Test symbol'); 
console.log(mySymbol.name); // prints 'Test symbol', as expected 

var a = {}; 
a[mySymbol] = 'Hello!'; 

, но я получаю сообщение об ошибке на последней строке

TypeError: Conversion from symbol to string

Как работают символы? Является ли мой пример неправильным или Node.JS на самом деле не символы поддержки?

+2

Я не могу даже найти 'Symbol' конструктор в последнем проекте. –

+0

Это описывает только данные * type *. Например, выше, вы увидите «Тип Null». Нет никакой функции конструктора «Null». –

+0

@ Randomblue: Это просто описание типа «Символ». Для их создания спецификация конструктора 'Symbol()' не существует, как вы его использовали. Проект еще не закончен :-) – Bergi

ответ

2

Вы должны попробовать без new:

var mySymbol = Symbol('Test symbol'); 
console.log(mySymbol.name); // prints 'Test symbol', as expected 

var a = {}; 
a[mySymbol] = 'Hello!';