コールバック関数

コールバック関数

後から呼び出される関数イベント処理はコールバック関数の一種。

以下の例では,xadd( ); xmult( ) がコールバック関数である。コールバック関数を使用すると,複雑さをコールバック関数内に記述することができること,処理系次第では,並列処理化が可能となる。

なぜ,コールバック関数という名前か

2つの説がある。例を利用して説明すると,

  • alert(xculc(2, 4, xadd)) は,alert 関数が,xculc 関数に「後でxaddに電話してね」(callback)とメモを渡しているイメージ。(斎藤末広はこの説を採用)
  • alert(xculc(2, 4, xadd)) は,alert 関数からxculc 関数制御権を渡し,xaddで,制御が呼び出し側に戻ってくきて,こちらに callback してくるイメージ。
<!doctype html>
<html>
<head>
  <meta charset=utf-8>
</head>
<body>
<script>
    
    function xadd(x, y){
        return x + y;
    }

    function xmult(x, y){
        return x * y
    };
    
    function xculc(x, y, f){
        return f(x, y);
    }
    
    alert(xculc(2, 4, xadd)); // 6 と表示,xadd関数をコールバック関数と呼ぶ
    alert(xculc(2, 4, xmult)) // 8 と表示,xmult関数をコールバック関数と呼ぶ

</script>
</body>
</html>

参考

msdn.microsoft.com

コールバック関数は基本的にイベント ハンドラの 1 つであり、アプリケーションが実装し、システムが呼び出す。

コールバック関数の使い方