我可以用 JSON 或类似的东西保存循环数据结构吗?

发布于 2024-12-06 22:14:25 字数 345 浏览 1 评论 0原文

当尝试使用 JSON 将有关游戏世界的一些数据保存在文件中时,我收到了很好的 ol' JSON 循环引用错误。有没有办法保存循环数据类型?另外,我使用 node.js 运行它,而不是在浏览器中运行。

基本上,随着时间的推移,玩家会获得一些单位。这些单位被保存到玩家对象内的列表中,但会被赋予玩家本人作为参数,因此它们知道谁是它们的所有者。像这样的事情:

Player = function()
{
    this.power = 0
    this.units = [new Unit(this)];
}

Unit = function(owner)
{
    owner.power++;   
}

When trying to save some data about the game world in a file using JSON, I get that good ol' JSON circular reference error. Is there a way to save circular data types? Also, I'm running this with node.js, not inside a browser.

Basically, over time, the player gets some units. These units are saved to a list inside the player object, but are given the player himself as an argument, so they know who's their owner. Something like this:

Player = function()
{
    this.power = 0
    this.units = [new Unit(this)];
}

Unit = function(owner)
{
    owner.power++;   
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

居里长安 2024-12-13 22:14:25

@Bane,回答如何包含 Cycle.js

将其放入项目的 lib 文件夹中,如果您在客户端执行此操作,则通过脚本标记包含它。

在服务器端,您可以将代码包含在需要循环引用的文件中;这很简单,但确实是错误的工作方式。更好的选择是将其构建为模块,请查看 howtonode.org 上的本教程了解具体信息。

不过,总体而言,最好的选择是重构,这样就不需要循环引用。

@Bane, in answer to how to include the cycle.js

Put it in your lib folder for your project and include it via a script tag if you're doing it on the client side.

On the server side you could include the code in the file that you need the circular reference in; that's simple but really the wrong way to work. Better bet is to build it out as a module, check this tutorial on howtonode.org for the specifics.

Your overall best bet though is to refactor so that you don't need the circular reference.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文