我正在开发一款游戏,并且有一个全局 save
变量,用于保存游戏的各个方面(单位、升级等)。游戏代码分为几个模块,例如升级或成就。
如何才能在其他模块中访问 save
变量?导入为我提供了变量的只读副本,这没有用。如何与其他模块共享该变量而不使其成为全局变量?
我不是在寻找最简单的问题解决方案,而是在寻找最佳实践。
编辑:我正在使用 ES6 导入/导出功能。
最佳答案
导入可能会为您提供变量的只读副本,但导入的对象不是不可变的。因此,如果您想共享多个模块可以写入的某种状态对象,您可以:
import saveState from './saveState';
saveState = { world: { } }; // Doesn't work
saveState.world = {}; // Does work
...并不是说我提倡这种模式(共享状态会导致各种不可预测性)。最好有一个带有方法的共享对象,并让该对象维护内部状态。
关于javascript - 如何创建一个可以在其他模块中编辑而不是全局的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39127823/