JavaScriptにおける関数のパラメータとしての渡し方
関数は、数値や文字列、配列と同様に、他の関数のパラメータとして渡すことができます。
具体的な例で詳しく見ていきましょう。
ここに、2つのパラメータを受け取る関数 test があるとします:
test(parameter1, parameter2);
関数 test の最初のパラメータとして
1 を返す無名関数を渡し、
2番目のパラメータとして 2 を返す無名関数を渡してみましょう:
test(
function() {return 1;},
function() {return 2;}
);
上記のコードは、まだ関数自体を定義していないため動作しません。それでは定義しましょう:
function test(func1, func2) {
}
関数を定義する際、2つのパラメータ - func1 と func2 - を指定しました。
これらのパラメータは、自分たちに何が渡されるかを知りません。
例えば、数値を渡すこともできます:
test(1, 2); // 関数を呼び出す
function test(func1, func2) {
console.log(func1); // 1 を表示
console.log(func2); // 2 を表示
}
また、関数を渡すこともできます:
test(
function() {return 1;}, // 最初のパラメータ
function() {return 2;} // 2番目のパラメータ
);
function test(func1, func2) {
console.log(func1); // 'function() {return 1;}' を表示
console.log(func2); // 'function() {return 2;}' を表示
}
ご覧の通り、コンソールには関数のソースコードが表示されます。 今度は、その結果を表示するようにしてみましょう。そのために関数呼び出しの括弧を付けます:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() ); // 1 を表示
console.log( func2() ); // 2 を表示
}
最初の関数と2番目の関数の結果の合計をコンソールに表示してみましょう:
test(
function() {return 1;},
function() {return 2;}
);
function test(func1, func2) {
console.log( func1() + func2() ); // 3 を表示
}
3つの関数をパラメータとして受け取る関数 test を作成してください。
最初のパラメータとして 1 を返す関数、
2番目として 2 を返す関数、
3番目として 3 を返す関数を渡します。
コンソールに関数の結果の合計を表示してください。