jquery学习第三天---jquery的浅拷贝与深拷贝

it2024-10-30  7

jquery的浅拷贝与深拷贝

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

deep: 如果设为true 为深拷贝, 默认为false 浅拷贝target: 要拷贝的目标对象object1:待拷贝到第一个对象的对象。objectN:待拷贝到第N个对象的对象。

浅拷贝

拷贝对象与被拷贝对象属性名不冲突会合并,

<script> var target={ name:"yang", age:18, msg:{ sex:1 } } var targetnew={ old:"no" }; $.extend(targetnew,target); console.log(targetnew); </script>

输出:

浅拷贝的特性: 浅拷贝是把被拷贝的对象复杂数据类型中的地址拷贝给目标对象,修改目标对象会影响被拷贝对象

我们改一下上面的代码:

<script> var target={ name:"yang", age:18, msg:{ sex:1 } } var targetnew={ old:"no" }; $.extend(targetnew,target); console.log(targetnew); target.msg.sex=2; console.log(targetnew); console.log(target); </script>

输出: 我们可以看出全部sex全部改成了2:

并且如果要拷贝的对象有与拷贝对象重名的属性,会被覆盖:

var target={ name:"yang", age:18, msg:{ sex:1 } } var targetnew={ age:11 }; $.extend(targetnew,target); console.log(targetnew);

输出

深拷贝

1,并且如果要拷贝的对象有与拷贝对象重名的属性,会被覆盖(和浅拷贝一样): 2,完全克隆(拷贝的对象,而不是地址),修改目标对象不会影响被拷贝对象 3,拷贝对象与被拷贝对象属性名不冲突会合并.

最新回复(0)