目录
一.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: