コールバック関数の定義は、b関数を引数としてaに渡して実行することですが、このときbがコールバック関数です 突然ですが、bを直接呼び出すのと何が違うのですか? a関数は?
私は自分でデモを書きました
出力結果を確認してコールバック関数の形に書き直すまでに3秒ほどかかります
リーリー出力結果は 3 秒後にしか表示されません。
多くの記事を見つけましたが、いずれも関数 a のコールバック関数として b が実行される場合、関数 a の通常の実行を妨げないことを説明しています。このロジックによると、2 番目のメソッドは hello world をすぐに出力する必要があります。間違ったコールバック関数を使用しましたか?まだ理解が難しいですか?
1. パフォーマンスに違いはありません
2. コールバック関数はパラメーターとして渡されるため、操作はより柔軟になります。たとえば、次の場合に実行できる関数 c を定義できます。関数内で関数を実行すると、変数の柔軟性が失われます。
そう、あなたは誤解していましたが、電話をかける効果は同じです。そして
callback.call(this);
画蛇添足,跟callback()
もこれと同じです。コールバックの利点は、依存関係の逆転で、a... のコードを変更せずに c、d、e を呼び出すことができることです。