2016-05-14 16 views
1

関数内の条件でコール関数を内部で使用しないでください。たとえば:条件内で関数を使用しないようにする - Javascript

var numberChoice = function(number){ 
    if (number == 1){ 
     alert("You have choosen 1"); 
     nextLevel(); 
    } 

    else if(number == 2){ 
     alert ("You have choosen 2"); 
     nextLevel2(); 
    } 

    else{ 
     alert("Please choose a number within range 1-2"); 
     guessAgain(); 
    } 
}; 

var number = prompt("What is your number?"); 

私は、起こっていることを誤解している可能性があります。あなたはそれについて説明することができますか? (3014-12-04)。 Ellquent JavaScript:プログラミングの現代的な紹介(Kindle Locations 1168-1169)デンプンプレスはありません。キンドル版。

+1

条件の中で関数を呼び出すことができます。 ifステートメントの中で関数を呼び出さないように言ったのは誰ですか? –

+0

あなたはそれをしないと言っているのは何ですか? –

+1

さらに、与えられたコードは 'if'本体の中で関数を呼び出します。私たちは同じことを話していますか? –

答えて

0

関数(if条件内)が非同期でない限り、問題はありません。 使用している関数は同期しています - つまり、スクリプトが実行を終了し、次のタスクに進む前に値を返すことを意味します。この場合、正常に動作します。 非同期関数(他の命令ラインと並行して実行される)の場合、その関数の結果はまだ返されず、スクリプトは正しい値(戻り値)を持たずに処理を続行します。

0

2つのサンプルで問題はありません。

if条件で関数を呼び出せないルールはありません。

唯一のポイントは、あなたが同じチェックであれば、いくつかを持っている警告です:関数が他呼び出されるとき、あなたの関数の最後にリターンを入れていない場合は、その場合の

if (number === 1) { 
    function1(); 
} 

    if (number === 2) { 
     function2(); 
} 

条件が評価されます。

より良いコードには問題がないあなたのケースでは

elseswitchを使用しています。

関連する問題