符号如何工作?

时间:2013-07-08 21:17:45

标签: javascript node.js ecmascript-6

Node.JS v0.11.3声称支持带有--harmony_symbols标志的ECMAScript 6符号(参见here)。最新草案says

  

使用键值标识属性。键值是ECMAScript字符串值或符号值。

我尝试过以下示例

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

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

但我在最后一行收到错误

  

TypeError:从符号转换为字符串

符号如何工作?我的示例是错误的,或者Node.JS实际上支持符号?

1 个答案:

答案 0 :(得分:2)

您应该在没有new的情况下尝试:

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

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