Когда я пытаюсь расширить объект, передавая полный объект, он, кажется, перезаписывает желаемый целевой объект. Тем не менее, я могу расширить каждый подобъект отдельно, а затем передать те, в которых он работает.jQuery расширять вложенный объект
$(function() {
window.test = {};
$.extend(window.test, {
init: function(opts1, opts2) {
//method 1, completely overwrites
this.options = $.extend({}, this.settings, {opts1: opts1, opts2: opts2});
//method 2, works
this.a = $.extend({}, this.settings.opts1, opts1);
this.b = $.extend({}, this.settings.opts2, opts2);
this.options2 = $.extend({}, this.settings, {opts1: this.a, opts2: this.b});
console.log(this.options, this.options2);
},
settings: {
opts1: {
a: 'hello',
b: 'hi',
e: 'this still here?'
},
opts2: {
c: 'yo',
d: 'wassup'
}
}
});
test.init({ a: 'hello2', b: 'hello3' });
});
Мой вопрос, если есть способ, чтобы использовать первый метод (1 линия, простой метод), чтобы достичь результатов второго способа (индивидуальные подобъектами).
Также есть JSFiddle.
@crush yup ... отметьте его как ответ. Благодаря! – Chad