我想使用一个每次使用时都是随机的全局变量。我目前的方法创建一个随机数一次,该数字保持不变。我不需要数字是唯一的,只是总是随机的。
var randomNumber = Math.floor(Math.random() * 100);
$('something').css('width', randomNumber)
$('something-else').css('width', randomNumber) // want a different random number
$('a-totally-different-thing').css('width', randomNumber) // want another different random number
有没有办法做到这一点,或者我每次都必须使用不同的 var?我想要这样做的主要原因是保持代码干净易读,而不必在任何地方一遍又一遍地放置 Math.floor(Math.random() * 100)。我正在尝试生成艺术,所以它会被大量使用。我希望它是全球性的,这样我就可以从任何地方引用它。
回答:用函数代替变量。非常感谢弗拉兹和切里德特
可以在全局对象上定义getter:
Object.defineProperty(globalThis, 'randomNumber', {
get: () => Math.floor(Math.random() * 100)
})
console.log(randomNumber)
console.log(randomNumber)
console.log(randomNumber)
...但我觉得这很奇怪,如果我在代码中遇到它,实际上会认为这是意想不到的、令人困惑的行为。为什么不使用函数呢?
function getRandomNumber () {
return Math.floor(Math.random() * 100)
}
console.log(getRandomNumber())
console.log(getRandomNumber())
console.log(getRandomNumber())