У меня есть функция, которая принимает объект 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. Хотя многие ответы на оба вопроса совпадают, это не означает, что сами вопросы одинаковы.