有一个名为numbers的全局变量。 函数一计算一个随机数并将其存储在 mynumber 变量中。
var mynumber;
function one (){
var mynumber = Math.floor(Math.random() * 6) + 1;
}
我需要在单独的函数中使用它,如下所示。但错误显示未定义 - 这意味着函数一的值未更新。
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)
}
关于javascript - 从函数更新全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25917425/