2013-07-08 10 views
5

Node.JS v0.11.3 beansprucht die Unterstützung für ECMAScript 6-Symbole mit dem --harmony_symbols Flag (siehe here). Der letzte Entwurf saysWie funktionieren Symbole?

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

Ich habe das folgende Beispiel versucht

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

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

aber ich erhalte eine Fehlermeldung in der letzten Zeile

TypeError: Conversion from symbol to string

Wie Symbole arbeiten? Ist mein Beispiel falsch, oder ist Node.JS tatsächlich nicht Unterstützungssymbole?

+2

Ich kann nicht einmal den 'Symbol' Konstruktor in dem neuesten Entwurf finden. –

+0

Das beschreibt nur die Daten * Typ *. Zum Beispiel, weiter oben sehen Sie 'The Null Type'. Es gibt auch keine 'Null'-Konstruktorfunktion. –

+0

@Randomblue: Das ist nur die Beschreibung eines Symboltyps. Es gibt keine Spezifikation eines 'Symbol()' -Konstruktors, um sie zu erstellen, wie Sie es benutzt haben. Der Entwurf ist noch nicht fertig :-) – Bergi

Antwort

2

Sie ohne new versuchen sollten:

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

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