首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >` with‘使用BabelJS返回空对象

` with‘使用BabelJS返回空对象
EN

Stack Overflow用户
提问于 2015-05-14 11:11:02
回答 2查看 314关注 0票数 0

我试图使用BabelJs运行以下代码:

代码语言:javascript
复制
var m = new Map();
m.set('a', 'b');
m.set('b', 1);
m.set('c', { a: 12 });

console.log(m);
console.log(typeof m);

但是我从babel-node那里得到了一个空的babel-node

代码语言:javascript
复制
{}
object

有什么问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-14 15:33:16

有什么问题吗?

没有问题。映射根本没有自己的可枚举属性。如果您的问题是为什么要看到{}而不是Map {....},那是因为您的环境还没有对Map的支持,因此核心js( Babel所使用的)填充了它们。

不可能(afaik)覆盖console.log应该如何显示值,因此您只看到一个空对象。控制台只显示值的一些表示形式,根据浏览器供应商认为有用的内容。

为了使我的观点更清楚,让我们看看您从console.log(document.body)得到了什么

代码语言:javascript
复制
> console.log(document.body)
<body class=​"...">​…​</body>​

这是否意味着document.body是一个包含的字符串?当然不是。document.body是一个DOM元素。控制台只是呈现它的HTML表示,因为有人认为这比转储DOM元素的所有属性更有帮助。

如果您真的想看到一个对象的所有属性,console.dir至少会让您更接近这一点。

票数 2
EN

Stack Overflow用户

发布于 2015-05-14 11:25:45

好的,我发现了问题。如果您使用iojs而不是node,它会运行得很好:

代码语言:javascript
复制
babel-node test/t.js

其结果将是:

代码语言:javascript
复制
object
Map { 'a' => 'b', 'b' => 1, 'c' => { a: 12 } }

注意: iojs安装程序将node的符号链接更改为iojs

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30235874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档