javascript - 如何创建一个可以在其他模块中编辑而不是全局的变量?

标签 javascript

我正在开发一款游戏,并且有一个全局 save 变量,用于保存游戏的各个方面(单位、升级等)。游戏代码分为几个模块,例如升级或成就。

如何才能在其他模块中访问 save 变量?导入为我提供了变量的只读副本,这没有用。如何与其他模块共享该变量而不使其成为全局变量?

我不是在寻找最简单的问题解决方案,而是在寻找最佳实践。

编辑:我正在使用 ES6 导入/导出功能。

最佳答案

导入可能会为您提供变量的只读副本,但导入的对象不是不可变的。因此,如果您想共享多个模块可以写入的某种状态对象,您可以:

import saveState from './saveState';

saveState = { world: { } }; // Doesn't work
saveState.world = {};       // Does work

...并不是说我提倡这种模式(共享状态会导致各种不可预测性)。最好有一个带有方法的共享对象,并让该对象维护内部状态。

关于javascript - 如何创建一个可以在其他模块中编辑而不是全局的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39127823/

相关文章:

javascript - jquery 迭代 json 对象

javascript - 带有 HTML 表格的 jQuery 同位素库

javascript - 我如何使用 Javascript 切换隐藏或显示 div 和类?

javascript - 这是在 Node.js 中将字符串转换为对象的最佳方法吗?

javascript - 为什么我的模板的 if 子句没有反应式更新?

javascript - Aurelia 中的数组订阅

javascript - 更改屏幕大小时更改功能区菜单

javascript - jQuery 方法链 - 获取前一个方法的返回值的方法

javascript - Vue.js : Communicate with components that are down the DOM

javascript - 检测显示器是否从 IE Kiosk 模式开机