Как создать прототип и расширить его в JS?

Не могу сообразить, как решить абсолютно тривиальную задачу на JS.

Есть конструктор, который принимает некие опции. Как сделать прототип опций и потом по необходимости его расширять для конкретной конфигурации?

const
  base1 = {
    key1: 'value 1',
    key2: 'value 2'
  },
  opt1 = base1 ??? {
    key2:'value 2.1',
    key3:'value 3.1'
  },
  opt2 = base1 ??? {
    key2:'value 2.2',
    key3:'value 3.2'
  };
let obj1 = new MyObject('name1', opt1);
let obj2 = new MyObject('name1', opt2);
  • Вопрос задан
  • 35 просмотров
Решения вопроса 1
alsolovyev
@alsolovyev
¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
Допустим через spread operator:
const commonOpt = {
  key: 'val',
  key1: 'val1'
}

const unitedOpt = {
  ...commonOpt,
  key: 'lav'
}


Через Object.assign:
const commonOpt = {
  key: 'val',
  key1: 'val1'
}

const unitedOpt = Object.assign(commonOpt, { key: 'lav' })

Что-то такое надо? Если надо глубокое слияние, то пишем свой deepMerge или используем lodash и еще какую готовую версию. А вообще почитайте про паттерны (builder и тд)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы