У меня есть Entity Component System, написанная на 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
Есть идеи, как этого добиться?Спасибо за любые подсказки.