関数はむつかしいよー。コールバック関数を、やってみた。

function daily_curry_evalution(spicy);
    console.log(‘デリーカレーは、おいしい’)
   spicy();
};

var price = function(){
    console.log(‘850円’)
};

daily_curry_evalution(price);

デリーカレーは、おいしいよ //出力結果
850円  //コールバック関数 出力結果

ただし、コールバック関数は、以下のように無名関数にするのが一般的。

function daily_curry_evalution(spicy);
    console.log(‘デリーカレーは、おいしい’)
   spicy();
};

daily_curry_evalution(function(){
   console.log(‘コルマカレーもおいしい。迷ってしまう’);
});

デリーカレーは、おいしい //出力結果
コルマカレーもおいしい。迷ってしまう  //コールバック関数出力結果

 

ここで、デリーカレーのコールバック関数を書いてみよう。

(ソースコード)
function dailyCurry(){
console.log(‘デリーカレーは、おいしいよ〜’);
price();
};

function price(){
console.log(‘900円’);
};

(実行してみる)
dailyCurry(price)

>デリーカレーは、おいしいよ〜
>900円

JavaScriptはシングルスレットなので、すなおに書けば、同期処理だ。
コールバック関数は、そうではなく、非同期処理を施すひとつの方法といえる、
それを実感するために、上記の例を使って、今度は、うしろのコードが先に処理されるのを実感してみたいと思う。

function price(){
console.log(‘900円’);

function dailyCurry(){
console.log(‘デリーカレーは、おいしいよ〜’);
price();
};

dailyCurry(price);

>デリーカレーは、おいしいよ〜
>900円