2013-07-08 11 views
5

Node.JS v0.11.3 twierdzi, że ma obsługę symboli ECMAScript 6 z flagą --harmony_symbols (patrz here). Najnowszy projekt saysJak działają symbole?

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

Próbowałem następujący przykład

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

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

ale pojawia się błąd na ostatniej linii

TypeError: Conversion from symbol to string

Jak symbole działa? Czy mój przykład jest błędny, czy też Node.JS faktycznie nie obsługuje symboli , a nie?

+2

Nie mogę nawet znaleźć 'konstruktora Symbol' w najnowszym projekcie. –

+0

To tylko opisuje dane * typ *. Na przykład, powyżej powyżej zobaczysz "Typ Null". Nie ma również funkcji konstruktora 'Null'. –

+0

@Randomblue: To tylko opis typu "Symbol". Nie ma specyfikacji konstruktora 'Symbol()', aby je utworzyć, tak jak go użyłeś. Wersja robocza nie została jeszcze zakończona :-) – Bergi

Odpowiedz

2

Należy starać bez new:

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

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