Задний план
У меня есть функция, которая принимает объект config
в качестве аргумента. Внутри функции у меня также есть объект по default
. Каждый из этих объектов содержит свойства, которые по существу работают как настройки для остальной части кода внутри функции. Чтобы не указывать все параметры в объекте config
, я использую метод extend
jQuery для заполнения нового объекта, settings
с любыми значениями по default
объекта по 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. Хотя многие ответы на оба вопроса накладываются друг на друга, это не означает, что сами вопросы одинаковы.