メインコンテンツまでスキップ

高階関数

引数に関数を受け取る関数、または関数を返り値として返す関数を 高階関数 と呼ぶ。

JavaScriptにおいて、関数は数値や文字列、オブジェクトなどと同じく値です(実際に関数はオブジェクトの一種として実現されている)。 従って、returnを使って関数を返したり、引数に関数を受け取ることができます。

特に前者の引数に関数を受け取る関数は頻出なため理解しておくと良い。

関数を受け取る関数の例

以下は、Array.mapを用いて配列の各要素を二倍した配列を作るプログラムです。 mapの引数にsquare関数を引き渡していることがわかると思います。

ここで無名関数やアロー関数を用いると以下のようなプログラムにすることもできます(これが名前が要らない場合というヤツです)

関数を返り値とする関数の例

以下のcreatePlusN関数は、引数aを受け取ると引数bを受け取り a + b を返す関数を返す関数です。
ややこしいですねw。