如果想要把某个对象拷贝(合并) 给另外一个对象使用,此时可以使用 $.extend()
方法
语法:
$.extend([deep], target, object1, [objectN])
参数说明
deep
: 如果设为true
为深拷贝,默认为false
浅拷贝。target
:要拷贝的目标对象object1
:待拷贝到第一个对象的对象。objectN
:待拷贝到第N个对象的对象。
- 浅拷贝目标对象引用的被拷贝的对象地址,修改目标对象会影响被拷贝对象。
- 深拷贝,前面加true, 完全克隆,修改目标对象不会影响被拷贝对象。
案例代码:
var targetObject = {
id: 0,
msg: {
age: 20
}
};
var Object1 = {
id: 1,
name: "andy",
msg: {
age: 18
}
}
//浅拷贝
$.extend(targetObject, Object1);
console.log(targetObject)
console.log(Object1)
/*
//控制台输出
targetObject {
id: 1,
name: "andy",
msg: 地址值1
}
Object1 {
id: 1,
name: "andy",
msg: 地址值1
}
*/
//深拷贝
$.extend(true,targetObject, Object1);
console.log(targetObject)
console.log(Object1)
/*
//控制台输出
targetObject {
id: 1,
name: "andy",
msg: 地址值2
}
Object1 {
id: 1,
name: "andy",
msg: 地址值1
}
*/