無名関数有名になってます

無名関数見参!

多くのプログラミング言語では、「無名関数」なるモノが利用できる。「三項演算子」と同様漢字だ。こちらも気になるところだが、それよりもネーミング自身だ。「無名」って・・・。「名もなき戦士が散っていった・・・」とか「名乗るほどのモノじゃありませんゼ」とか、昭和の香りがすのだが、どうなんだろう?

書き方

JavaScriptを例に見ていく。

普通の関数
function 関数名(引数1,引数2,・・・){命令1;命令2;・・・}

無名関数
function(引数1,引数2){命令1;命令2;・・・}

関数名が無いだけじゃーないか!。

えっ、これってもしかして、SDGsとかポリコレ的なアレで、男女別を記載しないように、あえて関数名も記述しないの?

と、身構えるかもしれないが、安心してください。名前を記述しないわけがありました。

コールバック関数

スポンサーリンク

無名関数はコールバック関数として多用される。コールバック関数とは

関数を呼び出す際に引数として渡す別の関数

うㇺㇺ、これじゃーわからない・・・。サンプルコードを見てみる。

3行目はイベントを登録する関数。

document.addEventListener(イベント種類イベント発生時に呼出す関数)

つまり、キーが押される(keydown)と関数keyinputが呼出されるように登録している。この呼出される関数(keyinput)をコールバック関数と言う。

面倒だ!

アプリを作成すると様々なイベントに対応してコールバック関数を登録する。例えばマウスが左クリックされた、ボタンAが押された、ボタンCが押された・・・などだ。その度に関数を定義するのは面倒である。

また、上記例のようにイベントを登録する関数(document.addEventListener)と、イベント処理する関数(keyinput)の記述場所が違うと、プログラムを読む際に互いの関数を探すのが面倒である。

プログラマは怠け者が向いており、怠けるために努力する、と言われている。この面倒な作業を回避するため「無名関数」が登場した。

無名関数を使う

上記を無名関数で記述した。どうでしょうか?怠け者が努力した結果です。

スポンサーリンク

まとめ

  • 無名関数を使うと関数定義(名前を考える)しなくていいので楽
  • 無名関数を使うと関数を探す手間が省けて楽
  • プログラミングの進歩は怠け者たちによる(たぶん、おそらく、しらんけ・・・)

以上

タイトルとURLをコピーしました