Здравствуйте. Столкнулся с тем что некорректный результат при изменении значений объекта. Он получается как бы клонировался, и при изменении значения в одном ключе, меняются и в другом
const objVal = { current: 0, deffault: 1 };
const arrKey = [1,2,3];
const aObj = new function(arr, obj) {
arr.forEach( v => Object.assign( this, { [v]: obj } ) );
}(arrKey, objVal);
aObj['1'].current = 10;
console.log(aObj); .
// { '1': { current: 10, deffault: 1 },
// '2': { current: 10, deffault: 1 },
// '3': { current: 10, deffault: 1 } }
вроде можно так переписать строку, но может есть лучшее решение?
arr.forEach(v => Object.assign(this, { [v]: Object.assign({}, obj) }));