【发布时间】:2019-05-03 12:05:27
【问题描述】:
我有一个用 ES7 编写的实体组件系统。我想尽量减少它的内存使用。因为系统中的许多实体非常相似,所以它们共享对“相同”组件的引用。我称它们为组件原型。
但是有一个问题。我希望能够更改一个实体的组件数据,而不影响其他实体。
它们共享对组件对象的相同引用。我了解,当我想对共享组件进行更改时,我必须制作数据副本并将组件引用更改为该副本,但我想自动执行此操作。
class Entity {
// get component // prop getter - read from reference
// set component // clone the data
}
class Component {
data = 'test'
}
let component = new Components()
let entity1 = new Entity()
let entity2 = new Entity()
entity1.component = component
entity2.component = component // shared entity
entity2.component.data = 'test2' // now the entity should clone the component
任何想法如何实现这一目标?感谢您的任何提示。
【问题讨论】:
标签: javascript components entity ecmascript-2017