Если вы в порядке с изменением obj
, просто измените его, прежде чем передать его:
var obj = { /* stuff */ };
obj.key3 = 'value3';
myFunction(obj);
Вы хотите навсегда изменить объект? - Нет, я бы хотел использовать его для следующего звонка в качестве базы.
Хорошо, вам нужно сделать копию obj
и изменить копию - либо до того, как вы позвоните myFunction
:
var obj = { /* stuff */ };
var extension = {key3: 'value3'};
myFunction($.extend({}, obj, extension));
или передать obj
и "расширение" до myFunction
:
var obj = { /* stuff */ };
var extension = {key3: 'value3'};
myFunction(obj, extension);
и myFunction
делают работу:
function myFunction(base, ext)
{
if (typeof base === 'object' && typeof ext === 'object')
{
base = $.extend({}, base, ext);
}
// rest of the function logic here
}
Если вы уже (или не возражаете) использовать jQuery, $.extend()
будет вашим лучшим другом для этой задачи.