コールバック関数とは即時関数でしょうか?本当に理解出来ません。 なんのために使うのかもよくわからないです。

JavaScript31閲覧

ベストアンサー

0

その他の回答(2件)

0

>コールバック関数とは即時関数でしょうか? 両方とも無名満数なので、同じもののように扱っているサイトもありますが、厳密に言うと違います。 即時関数は関数定義自体が実行文の役割も持っている関数定義のことです。 コールバック関数は、喩えていえば。 A君がB君(コールバック関数)に、「後で お客さんが来るから、B君は その客さんと商談して、その結果(成否)を知らせて下さい」と以来したとします。 B君(コールバック関数)が商談の結果(成否)を知らせてくれるまでA君は待っている(停止している)必要は無く、A君は自分の処理ができる訳です。

Ajaxで例えるなら。 A君はAjaxでサーバーにリクエストしたので、B君(コールバック関数)に、「後で サーバーからレスポンスが来るから、B君は そのレスポンスの処理をして、その処理のデータを知らせて下さい」と以来します。 B君(コールバック関数)がレスポンスの処理のデータを知らせてくれるまでA君は待っている(停止している)必要は無く、A君は自分の処理ができる訳です。

0

たとえば、あなたが誰かに電話してHelloって言ってとお願いします 相手は、ちょっと忙しいので待ってて と、相手の都合(処理時間)を待つのが普通の関数 しばらく待ってる間(相手の返答を待つ間)、自分は何も作業できません 相手から「Hello」と応答があったあとに自分で続きの作業をします いっぽう、コールバック関数の場合、 相手が、ちょっと忙しいとなってるので 「ああ、それなら暇になったら電話して(コールバック)」 と電話をきって相手を待たずに自分の他の作業をしました。 しばらくすると、相手から「Hello」と電話がかかってきます 現実世界の例えでいうとこんな感じ ポイントは、通常の同期呼び出しのように処理を待ちながらで進めるのでなく 相手の処理が終わったら、次の処理を相手側の契機で実行させるので、 こちら側は次の処理へ進めることです。