Я с codepen, представляющий мой вопрос: http://codepen.io/anon/pen/ibwvlИспользование объектов Внутри на Jquery Plugin Defaults
В codepen, я создаю некоторые простые функции плагин инициализации и выйти из настроек, когда приложение начинает работать.
Мой вопрос: когда я console.log(app.settings)
Я вижу свой объект по умолчанию вместе с новым объектом объектов, объединенным вместе, но я не вижу последнего ключа внутри объекта default по умолчанию (foo3). Это потому, что объект по умолчанию перезаписывается объектом options при запуске $.extend()
? Если да, можно ли объединить вложенные объекты с $ .extend()?
Для ясности:
объекта по умолчанию:
var defaults = {
test: 'foo',
obj: {
key1: null,
key2: null,
key3: 'foo3'
}
}
Варианты объекта:
$('#foo').fooTest({
obj: {
key1: 'foo1',
key2: 'foo2'
}
});
результат при входе app.settings
:
test: 'foo',
obj: {
key1: null,
key2: null
}
}
Где сделал key3
go?
Был ли он перезаписан из-за плагина параметров, определяющего новый объект, как obj: {}
?
Если да, то как я могу использовать расширение с вложенными объектами и гарантировать, что они не будут перезаписаны?
Ух, я даже посмотрел на пример в документах и пропустил «истину» там. Спасибо за подробный ответ и за различные варианты. Я был смущен обоими ответами, у одного был {} arg, а другой - нет, так что это еще больше очистило его. Еще раз спасибо! – spez86
Мое удовольствие, вот что ТАК! –