【发布时间】:2013-07-06 08:18:11
【问题描述】:
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 实际上 不 支持符号?
【问题讨论】:
-
我什至在最新的草稿中都找不到
Symbol构造函数。 -
那只是描述数据的type。例如,在上方您会看到
The Null Type。也没有Null构造函数。 -
@Randomblue:这只是
Symbol类型的描述。没有指定Symbol()构造函数来创建它们,就像您使用它一样。草稿尚未完成:-) -
作为参考,根本不支持的东西通常会失败,并显示不太具体的错误消息。错误甚至提到了符号这一事实非常强烈地暗示它们受到支持(至少在某种程度上;有多好,我不知道)。
标签: javascript node.js ecmascript-6