解説
関数は、通常は名前を付けて利用します。そして、ソースコードの様々な場所から、その名前で呼び出します。しかし時には、名前を付けずに利用することがあります。そういった関数のことを「無名関数」と呼びます。
無名関数は、その場で1回だけ使う「使い捨て」の関数として利用したり、イベント駆動プログラミングで、イベントが起きた時に実行する関数として利用したりします。
関数は、プログラムを構造化する便利な方法ですが、その全てに名前を付けるのは意外に面倒です。関数名を使って呼び出す必要がない関数では、こういった手法で「名前なし」の「無名」で使うことがあります。
サンプル
無名関数を使った処理を、JavaScriptで簡単に書いてみます。
<html>
<head>
<title>「無名関数を使った処理」のサンプル</title>
</head>
<body>
<pre><script type="text/javascript">
// 1行で関数を作って実行
var sum = (function(a, b) {return a + b;})(1, 2);
document.writeln(sum);
document.writeln("");
// 文字列長でソート
var sArr = ["あいうえお", "かきく", "さしすせ", "たち"];
var sArr2 = sArr.sort(function(a, b) {
return a.length > b.length;
});
document.writeln(sArr2.join("\n"));
document.writeln("");
// 置換処理の結果を利用して合計数を計算
var s = "1,2,3,4,5";
var sumStr = 0;
s.replace(/(\d+)/g, function(s, a1) {
sumStr += a1 * 1;
});
document.writeln(sumStr);
</script></pre>
</body>
</html>
3 たち かきく さしすせ あいうえお 15
