2017-12-19 12 views
0

私はこれを解決しようとしていますが、 'pass result to cb'はちょっと混乱しています。結果をcbに代入すると、関数を呼び出すときにcbの場所に置くことができる引数は無視されませんか?どんな助けもありがとうございます。この場合、「結果をパラメータに渡す」とはどういう意味ですか?

function sumArray(numbers, cb) { 
     var sum = 0; 
     for (var i = 0; i < numbers.length; i++) { 
     sum += numbers[i]; 
     } 
     return sum; 
     // sum up all of the integers in the numbers array 
     // pass the result to cb (This is my problem). 
     // no return is necessary 
    } 
+2

実際の質問はこちらですか? 'cb(sum) 'によって' cb'に合計を渡すことができます。 –

+0

この問題の総和平均の結果はどうなりますか?そして、私があなたが今やったようにすれば、関数を呼び出すのに使う数値やデータをオーバーライドしないだろうということでした。 sumArray([1、2、3]、5)のように(もし私がcbに合計を代入すれば、5と衝突しないだろうか?)助けてくれてありがとう。 –

答えて

1

JavaScriptでは、関数をパラメータとして渡すことができます。この場合、cbはおそらくあなたが引数を取ることができる関数です。

sumArray([1,2,3], function (arg1) { alert("result " + arg1) }) 

全例:

function sumArray(numbers, cb) { 
 
     var sum = 0; 
 
     for (var i = 0; i < numbers.length; i++) { 
 
     sum += numbers[i]; 
 
     } 
 
     cb(sum); 
 
     // sum up all of the integers in the numbers array 
 
     // pass the result to cb (This is my problem). 
 
     // no return is necessary 
 
    } 
 

 

 
sumArray([1,2,3], function (arg1) { alert("result " + arg1) })
例えば

cb(sum) 

CBは、このように呼ばれることができ

機能sumArray "コールバック" のための共通の略語であり、

さらにいくつかの読書:あなたの最初の関数呼び出しにパラメータとして渡されたfunctionあるcallbackため、このコードcbスタンドでUnderstanding JavaScript Callbacks

1

JavaScript関数では、関数をparamsとして他の関数に渡すことができるため、callback functionと呼ばれます。

したがって、この場合には「CBに結果を渡す」、あなたはcb関数にsum変数を渡す必要があり、これだけ書くことを意味します。詳細については

cb(sum); 

MDN callback function ReferenceをCHACK。

注:

あなたはこのコードを使用する場合cbfunctionでない場合は、それ以外の場合はエラーがスローされます2番目のパラメータとして関数を渡すために、確認してください。

関連する問題