現在Reactのチュートリアルのtic-tac-toe gameの最後の練習問題をやっている途中です。
自分で色々考えてみた後に答えを探してみるとここにありました。
https://codepen.io/m0neysha/pen/PWJyEx?editors=0010
その練習問題の4つ目に
4. Add a toggle button that lets you sort the moves in either ascending or descending order.
というのがありその部分のコードが上のリンクの162行目にあるのですが、これがよくわかりませんでした。
javascript
1{(() => this.state.ascending === true? <ol>{moves}</ol> : <ol>{moves.reverse()}</ol>) ()}
this.state.ascendingがtrueのときは<ol>{move}</ol>を返せ、
this.state.ascendingがfalseのときは<ol>{move.reverse()}</ol>を返せとこの行で行いたい目的はわかるのですが、構文の意味がわかりません。
特に最後に()が付されているのが理解できません。
恐らくアロー関数に関することだと思いこのサイトを参照してみると以下のように書いてありました。
var a = b = c = d = e = f = g = h = 5
var fn = a => b = c => d = e = f => g => h
console.log(fn()()()())
console.log(a,b,c,d,e,f,g,h)
これに従うと関数宣言を行い、その後関数を実行する時にその関数が入れ子になっていれば「()」が必要となるというふうに取れるのですが、問題のコードは実行時に急に「()」が付いています。
es6に詳しくないのでどういったキーワードで検索すれば求めていることを知れるのかわからず困っています。
簡単な例を提示して解説して頂けるとうれしいです。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー