Me gustaría usar una variable global que sea aleatoria cada vez que se use. Mi método actual crea un número aleatorio una vez y ese número permanece igual. No necesito que el número sea único, solo siempre aleatorio.
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¿Hay alguna manera de hacer esto, o tengo que usar una var diferente cada vez? Mi razón principal para querer esto es mantener el código limpio y legible y no tener que poner Math.floor(Math.random() * 100) una y otra vez en todas partes. Estoy experimentando con el arte generativo, por lo que se utilizará MUCHO. Me gustaría que fuera global para poder consultarlo desde cualquier lugar.
Respuesta: Use una función en lugar de una variable. Muchas gracias a VLAZ y CherryDT
Puede definir un captador en el objeto global:
Object.defineProperty(globalThis, 'randomNumber', { get: () => Math.floor(Math.random() * 100) }) console.log(randomNumber) console.log(randomNumber) console.log(randomNumber)... pero encuentro esto extraño y en realidad lo vería como un comportamiento inesperado y confuso si lo encontrara en el código. ¿Por qué no usar una función en su lugar?
function getRandomNumber () { return Math.floor(Math.random() * 100) } console.log(getRandomNumber()) console.log(getRandomNumber()) console.log(getRandomNumber())