0

コールバックは引数に渡す関数であることがわかりました。しかし、私はそれなしでそれを行うことができますので、ポイントは何ですか?例えば

function i()
{
 alert("callback");
 }
function p(a)  
{
for(r=0;r<100;r++)
{document.write(r);}
a();
}
p(i);

また

   function i()
{
alert("callback");
 }
function p()  
{
for(r=0;r<100;r++)
{document.write(r);}
i();}

検索しましたが、答えが見つかりませんでした

4

2 に答える 2

3

コールバックは通常、すぐには利用できないデータを処理する場合に使用されます。

たとえば、応答が到着したときにHTTP 応答から一部のデータを処理したり、マウス ボタンがクリックされたときにマウス クリックが発生した場所に基づいてアクションを実行したりします。

于 2012-10-27T21:37:59.550 に答える
2

i()例を挙げると、はい、関数を呼び出したい場合は、p()先に進んでそれを行うことができます。しかし、代わりに最後にp()呼び出すことを受け入れるような関数が必要な場合はどうなりますか? それは簡単です。関数をハードコーディングするのではなく、最後に呼び出すパラメーターとして関数を渡します。j()i()p()

柔軟性についてです。やるからといってやる必要はありませんが、あると便利な場合が多いです。

それでは、簡単な例を考えてみましょうsum()。配列のすべての要素を合計するという関数があるとしましょう。ここで、プログラムのどこかで、すべての要素を合計するのではなく、一部の要素、特定の値を超える要素のみ、または他のすべての要素を合計したいとします。作業する配列に加えて、呼び出す関数パラメーターfilter(null のままにすると、デフォルトですべての要素を合計するだけ) を取ることができるように sum を設定すると、sum()関数を大幅に増やすことができます。より便利になり、さまざまな合計関数をたくさん書くのを避けます。

また、Quentin が既に回答したように、非同期関数に特に役立ちます。

于 2012-10-27T21:41:34.773 に答える