Javascript:全局化函数内部的变量

时间:2013-10-05 20:21:06

标签: javascript function variables globalization

所以我有以下代码:

var func1 = function() {
    var userChoose = prompt("Choose a number from 1-10. If you choose the same number as the computer, you win!");
    func2();
};

var func2 = function() {
    computerChoose = Math.random();
    computerChoose = Math.round(computerChoose*10)/10;
    if (userChoose === computerChoose) {
        console.log("You won! The computer chose the number " + userChoice + " just like you! Good job!");
    } else if (userChoose > 10) {
        console.log("I'm sorry, you wrote something above 10. Try again.");
    } else {
        console.log("Sorry! The computer got " + computerChoose + 
        " and you got " + userChoose + ". Sorry!");
    }
};

func1();

我遇到的问题是,一旦我输入一个数字,比如说5,它将保留该数字,每次运行代码时都会说“抱歉!计算机得到x,你得到5”,即使我把3。

如果我错了,请纠正我,但我相信这是因为我正在尝试更改函数内部的变量。我的主要问题是如何全局化函数内部的变量,以便可以在不同的函数中使用和修改它?

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以在调用函数时传递值。试试这个:

var func1 = function() {
    var userChoose = prompt("Choose a number from 1-10. If you choose the same number as the computer, you win!");
    func2(userChoose);
};

var func2 = function(userChoose ) {
    computerChoose = Math.random();
    computerChoose = Math.round(computerChoose*10)/10;
    if (userChoose === computerChoose) {
        console.log("You won! The computer chose the number " + userChoice + " just like you! Good job!");
    } else if (userChoose > 10) {
        console.log("I'm sorry, you wrote something above 10. Try again.");
    } else {
        console.log("Sorry! The computer got " + computerChoose + 
        " and you got " + userChoose + ". Sorry!");
    }
};

func1();

演示here