返回对象的ECMAScript 6 arrow函数

从arrow函数返回对象时,由于语法中存在歧义,似乎有必要使用一组额外的{}return关键字

这意味着我不能写p=>{foo:“bar”},但必须编写p=>{return{foo:bar};}

如果arrow函数返回的不是对象,则不需要{}返回,例如:p=>“foo”

p=>{foo:“bar”}返回未定义的

修改后的p=>{“foo”:“bar”}抛出语法错误:意外标记:’‘”

我有什么明显的遗漏吗

必须将返回的对象文字括在括号中。否则,将考虑使用大括号表示函数体。以下工作:

p=>({foo:'bar'});

不需要将任何其他表达式括在括号中:

p=>10;
p=>'福';
p=>符合事实的
p=>[1,2,3];
p=>无效的
p=&gt/^富$/;

等等

引用:MDN-返回对象文本

发表评论