【问题标题】:Javascript: Function within a functionJavascript:函数中的函数
【发布时间】:2014-03-12 21:59:48
【问题描述】:

这段代码不能正常工作有什么原因吗? 为了playAgain 变量(见底部),我已将整个脚本放入一个函数中,该变量将重新启动该函数。 任何帮助将不胜感激。

function headsTails() {
    var userChoice;
    userChoice = prompt('Heads or Tails');

    function myGame(heads,tails) {  
        var result;
        var coin;
        result = Math.random()
        if(result > 0.5) {
            coin = "heads";
        } else {
            coin = "tails";
        }
        if(userChoice === "heads") {
            if(coin = "heads") {
                alert("You win!");
            } else if(coin = "tails") {
                alert("You lose!");
            }
        }
        if(userChoice === "tails") {
            if(coin = "heads") {
                alert("You lose!");
            } else if(coin = "tails") {
                alert("You win!");
            }
        }
    }
    myGame();
    var playAgain;
    playAgain = confirm(Do you want to play again?)
    if(playAgain) {
        headsTails();
    } else {
        alert("Thanks for playing!")
    }
}

【问题讨论】:

  • 这在什么方面不起作用?另外,“对不起,间距凌乱”——真的吗?修好它!这将减少有能力回答的人不会打扰而继续前进的可能性。
  • 不应该confirm(Do you want to play again?)confirm('Do you want to play again?')
  • 格式化很重要,因为它可以帮助您了解为什么您的代码可能无法正常工作。重新格式化后再次检查它,看看你是否能说出为什么它可能没有达到你的预期。
  • 关于间距/格式,jsbeautifier.org 非常适合在发布之前格式化代码
  • 我很困惑你在条件中使用===,在下一个条件中紧跟=

标签: javascript function var


【解决方案1】:

你有很多语法错误:

coin = "heads" -> coin === "heads"
coin = "tails" -> coin === "tails"
confirm(Do you want to play again ?) -> confirm("Do you want to play again ?")

我建议阅读有关 Javascript 和一般编程语言的信息...

修正了headtails函数:

function headsTails() {
    var userChoice;
    userChoice = prompt('Heads or Tails');

    function myGame(heads, tails) {
        var result;
        var coin;
        result = Math.random();
        if (result > 0.5) {
            coin = "heads";
        } else {
            coin = "tails";
        }
        if (userChoice === "heads") {
            if (coin === "heads") {
                alert("You win!");
            } else if (coin === "tails") {
                alert("You lose!");
            }
        }
        if (userChoice === "tails") {
            if (coin === "heads") {
                alert("You lose!");
            } else if (coin === "tails") {
                alert("You win!");
            }
        }
    }

    myGame();
    var playAgain;
    playAgain = confirm("Do you want to play again ?")
    if (playAgain) {
        headsTails();
    } else {
        alert("Thanks for playing!")
    }
}

【讨论】:

  • 谢谢你,这解决了我关于这个主题的所有问题。
猜你喜欢
  • 2018-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-20
  • 2012-09-28
相关资源
最近更新 更多