関数を返す関数

実践JavaScript / 全 5

実践JavaScript - 関数を返す関数

変換を並べて 1 本にまとめる

前後の空白を落として、長さを切り詰めて、と変換が続くと呼び出しが入れ子になって読めなくなります。処理の順番を配列で受け取り、順に通す関数を組み立てて返します。

return が組み立てた関数を外へ出す唯一の出口です。この出口が塞がると何が返るのかを次の図解で見ます。

pipe が返すのは変換の結果ではなく、2 つの変換を順に通す 1 本の関数です。

function pipe(steps) { return function (value) { return steps.reduce((current, step) => step(current), value); }; } const trim = (s) => s.trim(); const short = (s) => s.slice(0, 8); const toLabel = pipe([trim, short]); console.log(toLabel(" 料理レシピ検索アプリ ")); // "料理レシピ検索ア"

1 / 5

このスライドが付いているレッスンを開く