javascript随机数在点击时重新生成

时间:2013-02-18 03:53:17

标签: javascript jquery random

我有一个var ..

var random = Math.ceil(Math.random() * 8.8);

我有点击功能

$('.passShort').bind('click', function() {
     // do something here and get new random number
});

我正在尝试更改全局随机变量而不只是在这个特定函数内。

3 个答案:

答案 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.
});