为什么函数不使用之前函数的返回参数?

问题描述 投票:0回答:1

我是 Odin 项目 Java 脚本基础课程的初学者,正在做石头剪刀布作业

我的 playRound 功能无法正常工作,它只是没有读取应该在游戏中给我正确结果的参数。谁能指出我正确的方向来解释为什么会发生这种情况?我已经坚持这个问题好几天了。这是我的代码

let humanScore = 0;
let computerScore = 0;

function getComputerChoice() {
  let computerRound = Math.random();
  if (computerRound <= 0.33) {
    return "rock";
  } else if (computerRound >= 0.34 && computerRound < 0.66) {
    return "paper";
  } else {
    return "scissors";
  }
}

console.log(getComputerChoice());

function getHumanChoice() {
  let humanRound = prompt("Rock, Paper or Scissors? ").toLowerCase();
  if (humanRound == "rock") {
    return "rock";
  } else if (humanRound == "paper") {
    return "paper";
  } else if (humanRound == "scissors") {
    return "scissors";
  } else {
    alert("enter 'rock, paper or scissors'");
  }
}
console.log(getHumanChoice());

const computerSelection = getComputerChoice;
const humanSelection = getHumanChoice;

function playRound(getComputerChoice, getHumanChoice) {
  if (
    (computerSelection == "paper" && humanSelection == "rock") ||
    (computerSelection == "scissors" && humanSelection == "paper") ||
    (computerSelection == "rock" && humanSelection == "scissor")
  ) {
    return `You lose ${computerSelection} beats ${humanSelection}`;
  } else if (computerSelection === humanSelection) {
    return `Draw`;
  } else return `You win`;
}

console.log(playRound(computerSelection, humanSelection));

谢谢你

我再次阅读了我的课程,重新编写了代码,但仍然停留在同样的问题上

javascript function parameter-passing
1个回答
0
投票

获取计算机选择()

带括号,表示执行该函数。函数中的代码运行,然后返回一个值,您可以决定如何处理该值。例如,你有这个:

console.log(getComputerChoice());

这将从 getComputerChoice() 获取返回值并记录它,但之后不会对返回值执行任何其他操作。

获取计算机选择

如果没有括号,那么您就没有调用该函数,而只是引用它。所以当你这样做时:

常量computerSelection = getComputerChoice;

所做的就是说

computerSelection
应该与
getComputerChoice
具有相同的功能。该函数实际上并未被调用,也没有进行任何计算。

您可能想做的是:

const computerSelection = getComputerChoice();
const humanSelection = getHumanChoice();

console.log(computerSelection);
console.log(humanSelection);

const computerSelection = getComputerChoice();
将调用该函数,获取结果,然后将该结果分配给computerSelection。由于您现在已将其存储在变量中,因此您可以稍后使用它、将其注销或将其传递到
playRound

© www.soinside.com 2019 - 2024. All rights reserved.