jquery 拷贝对象

如果想要把某个对象拷贝(合并)给另外一个对象使用,此时可以使用$.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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值