無名関数とは

JavaScript

無名関数とは

無名関数を使うことの大きな利点は、関数を呼び出す処理のすぐ近くで関数を定義できることだと思う。これによって処理の流れの把握が極めて容易になる。通常の関数定義の場合は、処理を追うとき一度、呼び出し側の関数の外側に定義されている関数の記述まで飛ぶ必要があるので、流れが分かりづらいことがある。
なお、無名関数は Swiftのクロージャに相当する技法である。
無名関数の定義と実行
アロー関数を使用する
無名関数の定義と実行を同時に行う。関数本体を( )で囲み、直後に( )で囲んだ実引数を指定する。
アロー関数を使用する
無名関数は、関数定義を変数に閉じ込めることができるという優れた点がある。これによって、関数の引数に関数定義を指定することが容易になる。
関数の引数に関数を指定して実行する
アロー関数を使用する
変数のスコープ
無名関数を使用すると、関数の外側の変数を、関数の引数により経由することなく、直接参照することができる。柔軟なコーディングが可能だが、コードが追いづらくなることには注意。
参考
上記の処理を Swiftで作成してみる。無名関数は Swiftのクロージャに相当する。
内容的には、ほぼ同様のコードになるのが面白い。違いは関数の引数と戻り値の型宣言が必要なところだけ。型宣言の必要がない JavaScriptは やはりコーディングが容易である。