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 分配为提示输入的结果,我通过了guess 函数。我不明白的是我在guess 函数中调用了参数pGuess。我的理解是这不应该起作用,但它确实起作用了,pGuess 是如何知道从 playerGuess 中获取其价值的。

我是否以完全错误的方式看待这个,我真的很想了解这一点

谢谢

4

4 回答 4

4

pGuess 如何知道从 playerGuess 中获取其价值

它没有。的值由函数调用playerGuess赋予函数,不是函数从变量中获取。

guess(playerGuess)意思是“调用guess函数。将 的值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
  • pGuess is just the internal identifier the guess method uses for the argument - just another variable. In this case, containing the value of playerGuess
于 2012-10-02T12:45:42.463 回答
0

这是对的。当你打电话guess(playerGuess)时,你pGuess在功能中进行设置。

于 2012-10-02T12:41:58.083 回答