当从箭头函数返回对象时,由于语法上的歧义,似乎有必要使用额外的一组 of{}和一个关键字。return
{}
return
这意味着我可以——写p => {foo: "bar"},但必须写p => { return {foo: "bar"}; }。
p => {foo: "bar"}
p => { return {foo: "bar"}; }
如果箭头函数返回对象以外的任何内容,则{}andreturn是不必要的,例如:p => "foo".
p => "foo"
p => {foo: "bar"}返回undefined。
undefined
修改后的p => {"foo": "bar"}throws ”SyntaxError:意外标记:’ :‘”。
p => {"foo": "bar"}
SyntaxError
:
我有什么明显的遗漏吗?
您必须将返回的对象文字包装到括号中。否则花括号将被视为表示函数的主体。以下作品:
p => ({ foo: 'bar' });
您不需要将任何其他表达式包装到括号中:
p => 10; p => 'foo'; p => true; p => [1,2,3]; p => null; p => /^foo$/;
等等。
参考:MDN - 返回对象字面量