初めに
- Progateで躓いたところを中心にアウトプットしていきます。
コールバック関数を事前に定義したものと直接定義したものを比較する。
事前に定義したものはprintWanko関数を定義して、その後関数callの引数に渡され関数callを呼び出す。
printWankoはcallback引数に代入され、最後に関数callbackを呼び出す。
直接コールバック関数を書く場合は関数callの引数で直接関数を定義する。その後に関数callを呼び出す。
関数をcallbackに代入し、最後に関数callbackを呼び出す。
具体例
const printWanko = () => { console.log("にんじゃわんこ"); }; const call = (callback) => { console.log("コールバック関数を呼び出します。"); callback(); }; call(printWanko); call(() => { console.log("ひつじ仙人"); });
const printWanko = () => {console.log("にんじゃわんこ");};では事前に関数を定義している記述。
call(() => {console.log("ひつじ仙人");});関数callの引数に関数を定義している。
出力の順番は上から出力されるので事前に定義している方から出力されます。
call(printWanko)で引数printWankoとしたcall関数を呼び出している。
printWankoはcallbackに代入され、callback();で呼び出される。
よって初めの出力は
コールバック関数を呼び出します。 にんじゃわんこ
次に引数に直接定義したcall(() => {console.log("ひつじ仙人");});が出力される。
引数のcallbackに関数() => {const.log("ひつじ千人")}が代入される。
callback();で関数callbackが呼び出されているので以下のようになります。
コールバック関数を呼び出します。 ひつじ千人
- 最終的な出力は
コールバック関数を呼び出します。 にんじゃわんこ コールバック関数を呼び出します。 ひつじ仙人
結語
コールバック関数を直接引数として定義することができる。
関数の呼び出し方法としては変わらない。