一 js中的深浅拷贝
浅拷贝:
直接复制拷贝的是对象/数组的内存地址 ,
所有的变量存储的是相同的内存地址 操作的是同一个存储空间,
当其中的任意一个变量的操作 其他变量都受到影响
const arr1=['北京','上海','广州'];
const arr2=arr1;
//表示的是浅拷贝的形式
console.log(arr2);
arr1[0]="河北";
console.log(arr1);
深拷贝:
复制拷贝的是数组/ 对象存储的数值数据
执行几次深拷贝 就有几个独立的引用数据类型
存储的是不同的内存地址 操作的是不同的存储空间
其中的一个变量变化对其他的变量没有影响
const arr1 = ['上海', '广州', '北京'];
const arr2 = [];
arr1.forEach(item => {
arr2.push(item);
});
console.log(arr2);
arr1[0]="天津";
console.log(arr1);
console.log(arr2);
以上的部分是针对于Js中的深浅拷贝
二 jquery中的深浅拷贝
浅拷贝
$.extend(变量,原始数组/对象)
在jquery中没有固定的深浅拷贝 jquery的浅拷贝指的是 一维数组 深拷贝 二维数组 浅拷贝
jquery中封装的$.extend()默认指向的就是传统意义上的深拷贝
深拷贝
$.extend(true,变量,原始数组/对象)
一维数组 多维数组都是深拷贝