当前位置:  开发笔记 > 编程语言 > 正文

nodejs带表达式的箭头函数

如何解决《nodejs带表达式的箭头函数》经验,为你挑选了1个好方法。

根据文档,您可以从箭头函数返回表达式:

(param1, param2, …, paramN) => expression
     // equivalent to:  => { return expression; }

但这似乎没有像我期望的那样工作(nodejs 4.2.3)

> [1,2,3].map(i => i);
[ 1, 2, 3 ]
> [1,2,3].map(i => {});
[ undefined, undefined, undefined ]

第二个例子不应该返回3个空对象吗?或者我错过了什么?



1> raina77ow..:

根据文档,胖箭头函数的主体可以写成单个表达式或包含在其中的一系列语句{}(就像编写普通旧函数的主体一样).

关键是,如果解析器遇到{之后=>,它会与第二个选项一起使用.现在,无论你是否使用空对象文字或完整对象文字(如{ a: 2 }在这个答案的第一次编辑中)都没关系 - 它从不被视为对象文字,仅作为函数的主体.

如果函数没有return语句会发生什么?对 - 这个函数返回undefined.这就是为什么你得到其中三个map(for for => {}和for => { a: 2 }).

要获得三个空对象,而不是,只是包装{}(),像这样:

[1,2,3].map(i => ({}));

...因为它强制解析器使用expression路径.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有