从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=>/^富$/;
等等
引用:MDN-返回对象文本