【发布时间】:2018-05-11 14:23:45
【问题描述】:
我有一个游戏
game = {
turn: 5,
players : []
}
game.events = new events.emitter()
game.events.on('attack', handleAttack)
我需要将游戏状态准确地克隆(深度)到另一个对象,以便我可以为 AI 运行游戏模拟。我将如何克隆事件对象?
【问题讨论】:
-
你反对使用图书馆吗? Lodash 提供了一个很棒的方法,称为
_.cloneDeep,它可以对对象进行深度克隆 -
状态是否也参与了事件?如果事件是无状态的,那么您可以克隆对象的属性,但它们都可以共享一个公共事件。
-
@VincentRamdhanie state 参与是。
-
@SterlingArcher 我正在使用 lodash,但它不适用于函数。
-
问题是,为什么将状态存储在您的函数中?是否可以重构使函数是无状态的,那么这将成为一个微不足道的问题。
标签: javascript node.js event-handling