从箭头函数返回对象时,由于语法上的歧义,似乎有必要使用额外的{}和return关键字集。
{}
return
那意味着我不会写p => {foo: "bar"},但必须写p => { return {foo: "bar"}; }。
p => {foo: "bar"}
p => { return {foo: "bar"}; }
如果arrow函数返回的不是对象,则{}和return都是不必要的,例如:p => "foo"。
p => "foo"
p => {foo: "bar"}返回undefined。
undefined
修饰符p => {"foo": "bar"}抛出 “SyntaxError::意外标记::‘”。
p => {"foo": "bar"}
SyntaxError
:
有什么明显的我想念的吗?
您必须将返回的对象文字包装在括号中。否则,花括号将被视为表示功能的主体。以下作品:
p => ({ foo: 'bar' });
您不需要将任何其他表达式包装到括号中:
p => 10; p => 'foo'; p => true; p => [1,2,3]; p => null; p => /^foo$/;
等等。