$ .extend更改两个参数的值

时间:2014-11-26 22:47:24

标签: javascript jquery

有2个对象

var var1 = {a: 1, b: 2};
var var2 = {b: 3, c:5};

现在,我希望var 3具有这样的值 - var3 = {a:1, b:3, c:5}

我希望在不使用jquery extend()方法更改var1和var2的值的情况下实现这一目标。

我怎样才能做到这一点?

运行以下命令后

var var3 = $.extend(var1, var2)

现在,结果就是这个

var1 = {a: 1, b: 3, c: 5} // var1 is getting changed and i dont want this
var2 = {b: 3, c:5};
var3 = {a: 1, b: 3, c: 5}

var1现在等于var3,因为我不想更改var1或var2的值

3 个答案:

答案 0 :(得分:1)

试试这个:

var var3 = $.extend({}, var1, var2);

提供的第一个对象将被改变,因此只需在三个对象上运行extend,第一个对象为空。

答案 1 :(得分:1)

这就是$.extend()的工作原理:它总是修改参数列表中的第一个对象。如果你不想那样,那么:

var var3 = $.extend({}, var1, var2);

答案 2 :(得分:0)

试试这个。

var var3 = $.extend(var3,var1,var2);

jQuery.extend()