JavaScriptにおける数値のパラメータとしての受け渡し
ここで、渡される関数が何らかの処理を行う数値を、
test内部にハードコードするのではなく、
最初のパラメータとして渡すようにしましょう:
function test(num, func) { // 最初のパラメータとして数値が渡される
console.log(func(num));
}
この関数を利用してみましょう:
function test(num, func) {
console.log(func(num));
}
// 4を出力します:
test(2, function(num) {
return num * num;
});
この構造の便利な点:数値をパラメータとして受け取る
関数testが一つあります。
しかし、その数値に対して何が行われるかは
関数test内にハードコードされていません。
例えば、関数testの2番目のパラメータとして、
2乗する関数を渡すことも、
例えば、3乗する関数を渡すこともできます:
function test(num, func) {
console.log(func(num));
}
// 数値の2乗を求めます:
test(2, function(num) {
return num * num; // 2乗を返す
});
// 数値の3乗を求めます:
test(2, function(num) {
return num * num * num; // 3乗を返す
});
関数testが最初のパラメータとして数値を受け取り、
2番目と3番目のパラメータとして、
同様に数値をパラメータとして受け取る関数を受け取るとします。
関数testは、渡された関数の結果の合計を
返すものとします:
function test(num, func1, func2) {
return func1(num) + func2(num);
}
関数testを呼び出し、
最初のパラメータとして数値3を渡し、
2番目のパラメータとして数値を2乗する関数を渡し、
3番目として数値を3乗する関数を渡してください。
結果をコンソールに出力してください。