大家进来说说js该不该用全局变量呗

假如有以下一个场景,有一个user类,里面存着用户的各种数据如经验、金币。
我一向的做法是将这个单例import 或者 require进来,再调用其中的函数譬如User.getExp()来获取经验这样来获取其中的值,所有的东西尽量都不会暴露到全局变量中去。但是这样会有一个坏处,就是首先每在一个新的地方去引用,都需要引入这个模块,而且当多个地方引入这个模块的时候,要移动这个文件将会十分艰难。
用全局变量的好处是,在每个地方直接就可以用了,但是坏处是会污染全局的环境,然后代码会变得难读(没有任何引入突然莫名其妙来一个User.getExp(),估计都会懵逼)。
大家来说说这里应该要咋做?

你需要的是一个Proxy中介来隔离,以后修改也只用改Proxy一个类就好了

1赞

我也是这样做的,没任何问题

1赞

只用一个全局变量,变量里面包装User 、 Friend、Ativite 等模块,就跟cc命名空间 一样。在程序初始化的时候创建即可。过程我们自己相关系统维护各自的模块

1赞

可以用TypeScript,User.getExp()会导入相应的类的,不会莫名其妙

1赞