Если вы хотите расширить (через прототип) некоторый объект другим объектом, то вы можете использовать метод Object.create
, который принимает объект в качестве аргумента и создает новый объект с этим переданным в объекте, связанном с ним через цепочку прототипов.
const entity = {
x: 1,
y: 2,
z: 3
};
const objectX = Object.create(entity);
objectX.abc = 'something';
console.log(objectX.x);
console.log(objectX.y);
console.log(objectX.z);
console.log(objectX.abc);
Если вы просто хотите смешать один объект с другим, вы можете использовать Object.assign
и передавать пустой объект в качестве первого аргумента и объект entity
в качестве второгоАргумент к этому методу, который затем создаст новый объект со всеми свойствами, скопированными из entity
(обратите внимание, что это только поверхностная копия, поэтому вам нужно проявить особую осторожность, если entity
содержит некоторые другие объекты внутри него- они будут скопированы по ссылке, поэтому вы бы изменили исходные, если обновите их).
const entity = {
x: 1,
y: 2,
z: 3
};
const objectX = Object.assign({}, entity);
objectX.abc = 'something';
console.log(objectX.x);
console.log(objectX.y);
console.log(objectX.z);
console.log(objectX.abc);
Последняя вещь, Object.assign
может быть заменена разрушением объекта, подобным этому.
const objectX = { ...entity };
Но опять же, это также производит только поверхностную копию.