从函数更新全局变量

Updating a global variable from a function

本文关键字:全局变量 更新 函数      更新时间:2023-09-26

有一个叫做数字的全局变量。函数一计算一个随机数并将其存储在mynumber变量中。

var mynumber;
function one (){
var mynumber = Math.floor(Math.random() * 6) + 1;
}

我需要在一个单独的函数中使用它,如下所示。但一个错误显示undefined,这意味着函数一的值没有更新。

function two (){
alert(mynumber);
}

如何克服这个问题。有没有办法更新mynumber全局变量。

如果用var声明一个变量,它会在当前范围内创建它。如果不这样做,它将在全局范围内声明它。

var mynumber;
function one (){
    mynumber = Math.floor(Math.random() * 6) + 1; // affects the global scope
}

您也可以指定您想要全局范围,即使您也定义了一个局部变量:

function one (){
    var mynumber = 1; // local
    window.mynumber = Math.floor(Math.random() * 6) + 1; // affects the global scope
}

知道全局作用域是window,修改全局变量可能会有很大的技巧:

function one (){
    var mynumber = Math.floor(Math.random() * 6) + 1; // local
    window['mynumber'+mynumber] = mynumber; // sets window.mynumber5 = 5 (or whatever the random ends up as)
}

您所拥有的:

var mynumber = Math.floor(Math.random() * 6) + 1;

声明一个新的局部变量,然后设置一个值。删除var,您将更新原始值。

function one (){
   mynumber = Math.floor(Math.random() * 6) + 1;
}