JavaScriptにおけるコールバック関数
関数は、他の関数にパラメータとして渡すことができます。 このようなパラメータとして渡される関数のことを コールバック(callback)と呼びます。例を通じて その仕組みを見てみましょう。
例えば、最初のパラメータとして配列を受け取り、 2番目のパラメータとして、その配列の各要素に 適用するコールバックを受け取る関数を作りたいとします:
function each(arr, callback) {
// ここに何らかのコード
}
この関数の実装を書いてみましょう:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // コールバック関数を呼び出す
}
return result;
}
私たちが作ったeach関数は汎用的です。
これは、様々なコールバックを渡すことで、
配列に対して異なる操作を実行できることを意味します。
このとき、関数のコード自体は変更されません -
変化するのは渡されるコールバックだけです。
例として、私たちの関数を使って ある配列の各要素を2乗してみましょう。 そのためには、対応するコールバックを パラメータとして渡します:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
次に、配列の要素を3乗してみましょう。 この操作を実行する別のコールバックを パラメータとして渡します:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
数値の配列が与えられます。作成した
each関数を使って、各要素を
2倍にしてください。
文字列の配列が与えられます。作成した
each関数を使って、各文字列の
文字を逆順に並び替えてください。
文字列の配列が与えられます。作成した
each関数を使って、各文字列の
最初の文字を大文字にしてください。