2016-12-09 7 views
-1

誰かが 'unless'関数の役割と 'test'と 'then'の引数をどのように説明できますか?JavaScript関数を他の関数に渡す

function unless(test, then) { 
 
    if (!test) then(); 
 
} 
 

 
function repeat(times, body) { 
 
    for (var i = 0; i < times; i++) body(i); 
 
} 
 

 
repeat(3, function(n) { 
 
    unless(n % 2, function() { 
 
    console.log(n, "is even"); 
 
    }); 
 
}); 
 
// ▹ 0 is even 
 
// ▹ 2 is even

+0

あなたがそれに渡されたものを引数見ることができ、それは本体のみの1行を持っています。あなたは何を理解していますか? – Quentin

+0

複数の場合に使用できます。 – Rajesh

+0

ありがとうございました。この行は私をスローします。if(n%2 === 0){console.log(n、 "偶数")} !test)then();テストがfalseであれば、これは言うのですか? – stckpete

答えて

1

unlessはここでは構文上の砂糖です - コードを読めるようにします。それには2つの引数があります:testはテストしたい値で、thenは実行したい関数です。

unless "は、試験(すなわち!testtrueと評価)truthyない場合、thenを実行します。" と言います

あなたはunless機能を失い、代わりにこれを行うことができます:偶数と印刷のみ偶数奇数 &する機能チェック条件がない限りここで

repeat(3, function(n) { 
    if (!(n % 2) { 
    console.log(n, "is even"); 
    } 
}); 
1

unlessここ

それは、単純な条件ブロックと交換することができsyntacting sugar次のようになります。unless

if(!(n%2)){ 
    console.log(n, "is even"); 
} 

thenfunctionにrefereneceを保持して、後ですることができました012によって呼び出される

1

を。

unless(n % 2, function(){ 
    console.log(n, "is even"); 
}) 

最初のパラメータはtest GET値n % 2を意味します。

thenは、ログに数値を出力するfunctionです。簡単な方法で

for(var i = 0; i <= 3; i++) 
{ 
    if(i%2 == 0) 
    { 
     console.log(i, "is even"); 
    } 
} 
+0

ありがとうございました。この本の例は、関数を他の関数にどのように渡すことができるかを示しています。どうもありがとう – stckpete

関連する問題