-2

我正在用 javascript 为大学创建一个游戏,我有一个按钮来调用一个函数,但我需要它来包含来自另一个函数的变量

如果我将函数放在变量为按钮的另一个函数中,则不会调用它

有没有办法这样做或获取在第一个函数中创建的变量并在第二个函数中使用它们

这是一个简单的数学游戏,您可以在其中获得一个随机数、一个随机数和另一个随机数(即 5+7、4*3、2/6 等)

所以我有一个函数来显示随机数

var ranNum1a=Math.floor(Math.random()*10);

我需要其他功能来检查用户的答案,但我需要知道来自其他功能的随机数是什么

4

6 回答 6

1

您需要将这些变量设为全局示例:

var myValue;
function setValue()
{
    myValue = "test";
}

function getValue()
{
    alert(window.myValue); // yup, it's "test"
}

来源..

于 2012-05-05T14:57:35.253 回答
1

对于最简单的情况,将变量传递给另一个函数可能是解决此问题的最佳方法。

这是一个插图:

function f1(var1, var2) {
    //do you stuff then pass the variable to another function
    f2(var1, var2);
}

function f2(v1, v2) {
    // here v1 will get the value from var1 and v2 from var2 if passed from within the function f1
}
于 2012-05-05T14:59:29.773 回答
0
var ranNum1a;
function show() {
  ranNum1a = Math.floor(Math.random()*10);
  // show it
}

function check() {
  if (ranNum1a == 42) {
    alert("Ok");
  }
}
于 2012-05-05T14:58:50.490 回答
0

我发现这对于原始问题非常有帮助:

返回您希望在 functionOne 中使用的值,然后在 functionTwo 中调用 functionOne 并将结果放入一个新的 var 中。这应该使您能够在 functionTwo 中使用 functionOne 中声明的 var。

function functionOne() {
  var variableThree = 3;
  return variableThree;
}

function functionTwo() {
  var variableOne = 1;
  var var3 = functionOne();

  var result = var3 - variableOne;

  console.log(variableOne);
  console.log(var3);
  console.log('functional result: ' + result);
}

functionTwo();
于 2014-06-12T07:57:05.397 回答
0
function function1() {
            var a = 1;
            localStorage.setItem("var1", a);
            alert("Function1 value of a: " + a); 
        }

        function function2() {
            var a = localStorage.getItem("var1");
            alert("Function2 value of a: " + a); 
        }
于 2021-09-08T04:08:52.790 回答
0
<!-- first declare the variable -->
<script>
var x;
function something(){
   var x = document.getElementById('hello').innerHTML
}
function other(){
   document.write(x);
`you can use x here x is same as document.getElementById('hello').innerHTML`

}
</script>
于 2021-10-01T05:42:35.470 回答