3

私は現在javascriptを学んでおり、関数を介してパラメーターを渡すことに少し混乱しています。誰かがより明確な説明をしてくれることを望んでいました

次の簡単なコードがあります

     //generate random number
     var number = Math.round(Math.random()*10 + 1);

     //Ask user for name
     var playerName = prompt("What is your name?");

     //Prompt for intro
    var weclome =   alert("Hello " + playerName + " Welcome to Guess the Number");
    console.log(number);

    var playerGuess = prompt("What is your guess ");

    if (playerGuess !== null) guess(playerGuess);

   function guess(pGuess){ 
    if(pGuess == number) {
     alert("Congratulations you have guessed correctly");
    } else {
     alert("Unlucky, please try again");
  }  
}

ご覧のとおり、単純な数当てゲームです。私がこれまでに理解したことから、変数 playerGuess をプロンプトからの入力の結果として割り当てました。これを推測関数に渡します。私が理解していないのは、推測関数内でパラメーター pGuess を呼び出したことです。私の理解では、これは機能しないはずですが、pGuess は playerGuess から値を取得する方法を知っています。

私はこれを完全に間違った方法で見ていますか、私は本当にこれを理解したいです

ありがとう

4

4 に答える 4

4

pGuess は playerGuess からその値を取得する方法を知っています

そうではありません。の値は、関数によって変数から取得されるのではなく、関数呼び出しによって関数にplayerGuess渡されます。

guess(playerGuess)「推測関数を呼び出しplayerGuessます。最初の引数としての値を渡します。

function guess(pGuess){「これは推測関数です。pGuess呼び出されたときに、最初の引数の値をローカル変数に代入します」を意味します。

于 2012-10-02T12:41:27.957 に答える
1

この行で何をしているのか(functionキーワードに注意してください):

function guess(pGuess){

は、単一のパラメーターを受け取る再利用可能なコードのチャンク(「関数」)を定義しています。pGuessそのパラメータが到着すると、次のコードブロックで名前からアクセスできます。これは、一致するまで続き}ます。

この行で何をしているのか(functionキーワードがもうないことに注意してください):

guess(playerGuess);

変数の現在の値を使用してその関数を呼び出しplayerGuessいます。pGuessしたがって、その値を関数に渡し、その値を、その関数呼び出しのスコープ用に以前に定義された変数に配置します。

于 2012-10-02T12:45:12.707 に答える
1
  • の値がprompt("What is your guess ");変数に割り当てられますplayerGuess
  • メソッドguessは、の値で呼び出されます playerGuess
  • pGuessguessメソッドが引数に使用する内部識別子であり、別の変数です。この場合、の値を含むplayerGuess
于 2012-10-02T12:45:42.463 に答える
0

正解です。を呼び出しているときは、関数でguess(playerGuess)設定pGuessしています。

于 2012-10-02T12:41:58.083 に答える