JS コールバック関数を分かりやすく解説 関数を引数に指定する

JS コールバック関数と高階関数を理解しよう Java Script
スポンサーリンク

今回は「コールバック関数」について見ていきましょう。

まず、「コールバック関数」とは何でしょうか?

関数という名前がついているので、関数であることは間違いありません。

MDNでは、「他の関数に引数として渡される関数」と書かれています。

これを読んだだけで、理解できた方は素晴らしいセンスの持ち主ですが、私のような凡人には一体なんのことか分かりません。

早速例を見ながら、「コールバック関数」とは何なのかを理解していくことにしましょう。

スポンサーリンク

コールバック関数

let greeting = function(name){
    console.log('はじめまして' + name + 'です。');
}

greeting('佐藤');
 はじめまして佐藤です。

まずは、今まで何度も見てきた関数式を使って関数を定義します。

関数が変数「greeting」に格納されているのが分かると思います。

let greeting = function(name,age, call){
    this.name = name;
    this.age = age;
    call(name, age, call);
}

let person = function(name,age){
    console.log('はじめまして' + name + 'です。' + '年齢は' + age + '歳です。');
}

greeting('山田',33, person);
 はじめまして山田です。年齢は33歳です。

次は、greetingを呼び出す時に、引数にpersonを指定しています。

personも関数を定義しています。

このように引数に関数を指定しても、どちらもきちんと実行されています。

この時、引数として渡される関数を「コールバック関数」、引き渡された関数を実行する関数を「高階関数」と言います。

ここでは、personがコールバック関数、greetingが高階関数になります。

なお、引数として使用したpersonは、greetingを呼び出す時に直接引数に書くことも出来ます。

greeting('佐藤',35,(name,age)=>{
console.log('はじめまして' + name + 'です。' + '年齢は' + age + '歳です。')});

 はじめまして佐藤です。年齢は35歳です。

アロー関数を使っていますが、もちろん、functionから書いてもOKです。

ただこのような場合は、アロー関数の方が分かりやすいかもしれません。

あとがき

いかがでしたか。

比較的分かりやすかったと思います。

改めて今回の内容を確認してみましょう。

まず最初のポイントは、JavaScriptでは関数を引数に指定することが出来るということです。

このポイントを踏まえて、以下のことを学習しました。

  • コールバック関数:引数として渡される関数
  • 高階関数:引き渡された関数を実行する関数

今回学習した、「コールバック関数」は次回ご紹介する、「非同期処理」を学んで行く上でとても大切な要素の一つですので、しっかり覚えておいてください。

今回も最後までお読み頂きありがとうございました。

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