如果想要把某个对象拷贝(合并)给另外一个对象使用,此时可以使用$.extend ()方法
语法∶
$.extend ( [deep], target, object1,[object])
1.deep:如果设为true为深拷贝,默认为false浅拷贝
2.target:要拷贝的目标对象
3.object1:待拷贝到第一个对象的对象。
案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="js/jquery-3.5.1.min.js"></script>
<script>
$(function () {
// var targetObj = {};
// var obj = {
// id: 1,
// name: 'andy'
// }
// $.extend(targetObj, obj);
// console.log(targetObj);
/*var targetObj = {id: 0};
var obj = {
id: 1,
name: 'andy'
}
$.extend(targetObj, obj); //覆盖原来的内容
console.log(targetObj);*/
var targetObj = {age: 18, id: 0};
var obj = {
id: 1,
name: 'andy',
msg: {id: 0}
}
$.extend(targetObj, obj); //浅拷贝,合并,相同属性覆盖,msg拷贝的只是地址
console.log(targetObj);
obj.msg.id=90;
console.log(targetObj.msg.id) //结果是90
var targetObj = {age: 18, id: 0, msg:{id: -1}};
var obj = {
id: 1,
name: 'andy',
msg: {id: 0}
}
$.extend(true,targetObj, obj); //深拷贝,合并,相同属性覆盖,msg拷贝的是完整对象,里面的msg.id被覆盖
console.log(targetObj);
obj.msg.id=90;
console.log(targetObj.msg.id) //结果是0 :-1被0覆盖,修改obj的msg.id, targetObj不受影响
})
</script>
</head>
<body>
</body>
</html>