Javascript 控制台日志输出整个函数,而不是&x27;他回来了

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

我刚刚开始学习JavaScript,并决定用目前为止所学的有限知识制作一个石头剪刀游戏。然而,我不明白为什么它会输出

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.";