1. ホーム
  2. javascript

[解決済み] ECMAScript 6 オブジェクトを返す矢印関数

2022-03-19 13:16:42

質問

アロー関数からオブジェクトを返す際に、余計に {}return キーワードは、文法上の曖昧さが原因です。

ということは p => {foo: "bar"} と書かなければならないが p => { return {foo: "bar"}; } .

矢印関数がオブジェクト以外を返した場合は {}return は不要です、例. p => "foo" .

p => {foo: "bar"} リターン undefined .

修正された p => {"foo": "bar"} 投げる " SyntaxError : 予期しないトークン: ' : '" .

何か明らかな見落としがあるのでしょうか?

解決方法は?

返されるオブジェクト・リテラルを括弧でくくる必要があります。そうしないと、中括弧が関数本体を示しているとみなされます。以下のようにすればうまくいきます。

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

他の式は括弧でくくる必要はありません。

p => 10;
p => 'foo';
p => true;
p => [1,2,3];
p => null;
p => /^foo$/;

といった具合です。

参考 MDN - オブジェクトリテラルを返す