私がJavaScriptが好きになったきっかけのひとつは、JavaScriptにおける関数は第1級オブジェクトだということを知ったことだったと思います。要はJavaScriptでは関数を変数に代入したり、関数の引数や戻り値に関数を使ったりできるというわけですね。そのためJavaScriptではオブジェクト指向プログラミングだけでなく、関数型プログラミングも可能となっています。 数年前からエンジニア業界では、関数型プログラミングがオブジェクト指向プログラミングに変わる次のプログラミングスタイルとして注目されているそうです。ただ、私の場合は「勉強しよう」と意識して取り組んでいたわけではなく、JavaScriptに触れているうちに自然と関数型的な考え方に引き寄せられていたという感じでした。個人的に、関数に関数を渡していくという考え方が、オブジェクト指向的な考え方よりしっくりくると感じたのです。