JavaScript-эквивалент метода расширения jQuery

Фон

У меня есть функция, которая принимает объект configв качестве аргумента. Внутри функции у меня также есть объект default. Каждый из этих объектов содержит свойства, которые по сути работают как настройки для остального кода внутри функции. Чтобы не указывать все настройки в объекте config, я использую метод jQuery extendдля заполнения нового объекта settingsлюбыми значениями по умолчанию из объекта default, если они не были указанный в объекте config:

var config = {key1: value1};
var default = {key1: default1, key2: default2, key 3: default 3};

var settings = $.extend(default, config);

//resulting properties of settings:
settings = {key1: value1, key2: default2, key 3: default 3};

Проблема

Это прекрасно работает, но я хотел бы воспроизвести эту функциональность без использования jQuery. Есть ли столь же элегантный (или близкий к )способ сделать это с помощью обычного javascript?


Редактировать :Нет -Повторяющееся обоснование

Этот вопрос не дублирует вопрос «Как я могу динамически объединить свойства двух объектов JavaScript? ».Принимая во внимание, что этот вопрос просто хочет создать объект, который содержит все ключи и значения из двух отдельных объектов -, я специально хочу решить, как это сделать в случае, если оба объекта совместно используют некоторые, но не все ключи, и какой объект получит приоритет (значение по умолчанию )для результирующего объекта в случае наличия повторяющихся ключей. И даже более конкретно, я хотел рассмотреть использование метода jQuery для достижения этой цели и найти альтернативный способ сделать это без jQuery. Хотя многие ответы на оба вопроса совпадают, это не означает, что сами вопросы одинаковы.

84
задан Cœur 14 July 2018 в 14:00
поделиться