我有一个var ..
var random = Math.ceil(Math.random() * 8.8);
我有点击功能
$('.passShort').bind('click', function() {
// do something here and get new random number
});
我正在尝试更改全局随机变量而不只是在这个特定函数内。
答案 0 :(得分:1)
我喜欢在需要真正全局变量时严格定义全局变量,并尽可能避免重复代码:
setRandom();
$('.passShort').bind('click', setRandom);
function setRandom() { window.random = Math.ceil( Math.random() * 8.8 ); };
在window
对象上设置变量可确保它真正全局化。你可以在random
任意位置引用它,它会给你window.random
,但使用window.random
可以确保你设置全局random
变量的值。
答案 1 :(得分:0)
在函数外使用var
,但不在函数内部:
var random = Math.ceil(Math.random() * 8.8);
$('.passShort').bind('click', function() {
random = Math.ceil(Math.random() * 8.8);
});
答案 2 :(得分:0)
根据您声明的位置,random
变量将决定其范围。如果您想将其设为全局,只需在没有var
关键字的情况下声明它。
random = Math.ceil(Math.random() * 8.8);
真的,如果你能将你正在寻找的功能组合成一些可重复使用的对象,一个随机数发生器,它会更好吗?一个例子可能是:
var RNG = {
get randInt() { return Math.ceil(Math.random() * 8.8); },
get randFloat() { return Math.random() * 8.8; },
randRange: function(min, max) {
return min + Math.floor(Math.random() * (max - min + 1));
}
};
console.log(RNG.randInt);
console.log(RNG.randFloat);
console.log(RNG.randRange(5,10));
$('.passShort').bind('click', function() {
console.log(RNG.randInt); // Whatever you want here.
});