Nodejs中的地图集合Harmony / ES6破坏了吗?

似乎Nodejs 0.10.20中的Map已经损坏。 我用–harmony(包括–harmony_collections标志)启动它。
请参阅http://dailyjs.com/2012/10/15/preparing-for-esnext/ 。
下面的例子在Firefox 20.0中运行。

在Nodejs控制台中,我执行以下操作

> var map = new Map([[“name”,“Nicholas”],[“title”,“Author”]]);
未定义
>地图
{}

所以contsructor初始化似乎没有工作。 然后我按照Firefox的例子,他们大多不工作:

> console.log(map.has(“name”)); // true

未定义
> console.log(map.get(“name”)); //“尼古拉斯”
未定义
未定义
> console.log(map.has(“title”)); // true

未定义
> console.log(map.get(“title”)); //“作者”
未定义
未定义
> console.log(map.size()); // 2
TypeError:对象#没有方法“大小”
在复制:1:17
在REPLServer.self.eval(repl.js:110:21)
在repl.js:249:20
在REPLServer.self.eval(repl.js:122:7)
在界面。 (repl.js:239:12)
在Interface.EventEmitter.emit(events.js:95:17)
在Interface._onLine(readline.js:202:10)
在Interface._line(readline.js:531:8)
在Interface._ttyWrite(readline.js:760:14)
在ReadStream.onkeypress(readline.js:99:10)

林困惑,这些基本的地图方法不工作。 我有Nodejs版本0.10.20

这是工作。 我在节点v0.10.13上testing过它

 var map = new Map(); map.set("name", "Nicholas"); map.set("title", "Author"); > map.has("name"); true > map.get("name"); 'Nicholas' > map.has("title"); true > map.get("title"); 'Author' 

你正在尝试的是特定于Mozilla。 它没有在V8中实现。 在你尝试的size和数组初始化与构造函数不存在于V8中。 在V8中,我无法find很好的文档来实现es-harmony的实现,这使得它很难处理。 也不是一个标准,所以实现会有所不同。

具体来说,node.js v0.10.25 Map似乎支持以下方法:

 > console.log(Object.getOwnPropertyNames(Map.prototype)) [ 'constructor', 'get', 'set', 'has', 'delete' ] 

非常不幸的是,似乎没有任何方法来迭代Map中的元素。