Javascript 控制台日志输出整个函数,而不是&x27;他回来了
我刚刚开始学习JavaScript,并决定用目前为止所学的有限知识制作一个石头剪刀游戏。然而,我不明白为什么它会输出Javascript 控制台日志输出整个函数,而不是&x27;他回来了,javascript,function,nested,Javascript,Function,Nested,我刚刚开始学习JavaScript,并决定用目前为止所学的有限知识制作一个石头剪刀游戏。然而,我不明白为什么它会输出 I chose function (userChoice) { if(userChoice==="Rock") return "Paper"; if(userChoice==="Paper") return "Scissors"; if(userChoice==="Scis
I chose function (userChoice)
{
if(userChoice==="Rock")
return "Paper";
if(userChoice==="Paper")
return "Scissors";
if(userChoice==="Scissors")
return "Rock";
}. I win noob.
而不仅仅是“我选择了摇滚,我赢了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
函数的外部和上方,并调整一些内容,代码按预期工作。我就是不明白为什么一种方法有效而另一种方法无效。您忘记了()
:
使用括号,JavaScript将在字符串中插入函数,而不是调用函数并插入结果。您需要将
作弊作为函数传递-
return "I chose " + cheat(userChoice) + ". I win noob.";
您必须再次传入userChoice
,因为函数(userChoice)
调用要求一个变量,并调用它userChoice
。但是,它实际上并没有使用以前建立的userChoice
变量。仍然不正确。。。没有传递论点<代码>作弊(用户选择)
感谢您的快速回答!我有点不好意思我错过了这么简单和明显的东西哈哈。
return "I chose " + cheat(userChoice) + ". I win noob.";