jQuery深度扩展并保留所有属性

sta*_*lar -2 javascript jquery

运行此位后:

var o1 = {
    a: { x: 1, y: 2 }
};
var o2 = {
    a: { z: 3 }
};
var result = $.extend(true, o1, o2);
Run Code Online (Sandbox Code Playgroud)

我发现那result{ a: { z: 3 } }.有没有办法把它同时包含的属性o1.ao2.a

换句话说,有没有办法改变上面的脚本,以便result:

{
    a: { x: 1, y: 2, z: 3 }
}
Run Code Online (Sandbox Code Playgroud)

编辑:代码错了.在修复参数顺序后,它实际上按预期工作.

iCo*_*nor 5

deep论点是第一.jQuery.extend( [deep ], target, object1 [, objectN ] )

var o1 = {
    a: { x: 1, y: 2 }
};
var o2 = {
    a: { z: 3 }
};
var result = $.extend(true, o1, o2);
Run Code Online (Sandbox Code Playgroud)

http://api.jquery.com/jquery.extend/