オブジェクトを返すECMAScript 6の矢印関数 質問する

オブジェクトを返すECMAScript 6の矢印関数 質問する

矢印関数からオブジェクトを返す場合、文法の曖昧さのため、追加の のセット{}とキーワードを使用する必要があるようです。return

つまり、私は書けないp => {foo: "bar"}けど、書かなければならないということですp => { return {foo: "bar"}; }

矢印関数がオブジェクト以外のものを返す場合、 および{}return不要です。例: p => "foo"

p => {foo: "bar"}戻り値undefined

変更すると、: 予期しないトークン: ' '」p => {"foo": "bar"}がスローされます。SyntaxError:

私が見逃している明らかな何かがあるでしょうか?

ベストアンサー1

返されるオブジェクト リテラルを括弧で囲む必要があります。そうしないと、中括弧が関数の本体を示すものと見なされます。次のコードが機能します。

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

他の式を括弧で囲む必要はありません。

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

等々。

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

おすすめ記事