jQuery——深浅拷贝

目录

一.jQuery拷贝对象

二.浅拷贝

 三.深拷贝


一.jQuery拷贝对象

把某一个对象拷贝给另外一个对象使用,此时可以使用$.extend()方法

$.extend([deep,]target,object1[,objectN])

//deep:如果deep值为true,那么定义为深拷贝;为false相反(默认false)
//target:要拷贝的目标对象
//object1:待拷贝到第一个对象的对象

如果要拷贝的目标对象为空,那么可以直接将数据拷贝到当前这个要拷贝的目标对象

如果要拷贝的目标对象不为空,但是数据名与object有冲突,那么会数据覆盖

其实我们也可以看作是一个数据的合并吧,将后面的obj对象数据全部拷贝给target目标对象


二.浅拷贝

浅拷贝是把被拷贝的对象复杂数据类型中的地址拷贝给目标对象:

let targetObj = {
    id:1,
    msg:{
        sex:"男"
    }
}

let obj = {
    id:2,
    name:"小蜗",
    msg:{
        age:22
    }
}

$.extend(targetObj,obj)
//这样浅拷贝将msg中的sex以及它的值覆盖掉了,只显示age:22

我们打印一下要拷贝的目标对象 :


 三.深拷贝

完全克隆拷贝对象,而不是地址,并且修改目标对象的话,不会影响被拷贝对象

数据不会被覆盖,因为拷贝的不是地址,所以会拷贝为一个新的独立对象,开辟一个存放它的空间

let targetObj = {
    id:1,
    msg:{
        sex:"男"
    }
}

let obj = {
    id:2,
    name:"小蜗",
    msg:{
        age:22
    }
}

$.extend(true,targetObj,obj)

我们再打印一下targetObj: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Try Tomato

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值