我刚开始学习JavaScript并决定使用迄今为止我所获得的有限知识制作Rock-Paper-Scissors游戏。但是,我无法弄清楚它输出的原因
I chose function (userChoice)
{
if(userChoice==="Rock")
return "Paper";
if(userChoice==="Paper")
return "Scissors";
if(userChoice==="Scissors")
return "Rock";
}. I win noob.
而不仅仅是“我选择了Rock。我赢了noob。”
这是我的代码:
var main = function()
{
var yesno = confirm("Would you like to play Rock-Paper-Scissors?");
if(yesno === false)
return "You're lame.";
var userChoice = prompt("Rock, Paper, or Scissors?");
var cheat = function(userChoice)
{
if(userChoice==="Rock")
return "Paper";
if(userChoice==="Paper")
return "Scissors";
if(userChoice==="Scissors")
return "Rock";
};
return "I chose " + cheat + ". I win noob.";
};
console.log(main());
我发现它的工作原理是将cheat
函数移到main
函数之外和之上并调整一些东西,代码按预期工作。我只是无法弄清楚为什么一种方法有效,而另一种方法没有。
答案 0 :(得分:3)
您忘记了()
:
return "I chose " + cheat(userChoice) + ". I win noob.";
使用括号,JavaScript将在字符串中插入函数,而不是调用它并插入结果。
答案 1 :(得分:0)
您需要将cheat
作为函数传递 -
return "I chose " + cheat(userChoice) + ". I win noob.";
您必须再次传入userChoice
,因为function(userChoice)
调用要求变量,并将其称为userChoice
。但是,它实际上并未使用先前建立的userChoice
变量。