当前位置: 首页 > 知识库问答 >
问题:

单个全局变量,每次引用时始终为随机数

西门高歌
2023-03-14

我想使用一个每次使用时都是随机的全局变量。我目前的方法创建一个随机数一次,该数字保持不变。我不需要数字是唯一的,只是总是随机的。

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)。我正在尝试生成艺术,所以它会被大量使用。我希望它是全球性的,这样我就可以从任何地方引用它。

回答:用函数代替变量。非常感谢弗拉兹和切里德特

共有1个答案

廖令
2023-03-14

可以在全局对象上定义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())
 类似资料:
  • 以太币(Ether) 单位 以太币(Ether) 单位之间的换算就是在数字后边加上 wei、 finney、 szabo 或 ether 来实现的,如果后面没有单位,缺省为 Wei。例如 2 ether == 2000 finney 的逻辑判断值为 true。 时间单位 秒是缺省时间单位,在时间单位之间,数字后面带有 seconds、 minutes、 hours、 days、 weeks 和 y

  • 本文向大家介绍从局部变量和全局变量开始全面解析Python中变量的作用域,包括了从局部变量和全局变量开始全面解析Python中变量的作用域的使用技巧和注意事项,需要的朋友参考一下 理解全局变量和局部变量 1.定义的函数内部的变量名如果是第一次出现, 且在=符号前,那么就可以认为是被定义为局部变量。在这种情况下,不论全局变量中是否用到该变量名,函数中使用的都是局部变量。例如: 输出结果是123。说明

  • 如果你要多于一个函数共用一个简单的变量,简单的处理方法就是把这个变量在所有函数中定义为global全局变量。在命令行做同样的事情,如果你要工作空间访问上述变量。这个全局变量的定义必须出现在变量被应用于一个函数之前。虽然不是要求,但全局变量也最好以大写字母开头,这样可以同其他变量区别出来。举个例子,做一个以falling.m命名的M-文件。 function h = falling(t) globa

  • ThinkCMF封装了前台模板开发时常用的一些变量,这些变量是全局的,你在前台模板任何时候都能直接调用: {$site_name} /站点名称 {$site_host} /站点域名 {$site_root} /安装目录 {$site_icp} /

  • swoole内置了几个全局变量供程序内使用。一般不要自行创建全局变量。 SwooleG 超全局本地内存变量,此变量在swoole_init时就初始化好了。存储了一些全局的信息。但不是共享内存的。当创建子进程后再修改其中的字段,其他进程是感知不到的 SwooleG.main_reactor,全局事件循环 SwooleG.lock,全局锁 SwooleG.memory_pool,全局共享内存池 Swo

  • 全局变量 PHP中在函数、类之外直接定义的变量可以在函数、类成员方法中通过global关键词引入使用,这些变量称为:全局变量。 这些直接在PHP中定义的变量(包括include、require文件中的)相对于函数、类方法而言它们是全局变量,但是对自身执行域zend_execute_data而言它们是普通的局部变量,自身执行时它们与普通变量的读写方式完全相同。 function test() {