一、深浅拷贝含义:
(1)针对 JavaScript中的引用数据类型而言的,基本数据类型不涉及 深浅拷贝问题。
(2)浅拷贝:直接复制拷贝 引用数据类型的内存地址
const obj1={name:'张三',age:18,sex:'男'};
obj1中存储的是 对象类型 的 内存地址,不是对象类型的具体数据数值
const obj2=obj1 ==>将obj1中存储的内存地址赋值给obj2存储
最终效果是 通过一个变量操作引用数据类型 另一个变量也会受到影响
总结:本质是赋值拷贝内存地址;始终只有 一个 引用数据类型;操作的始终是 一个存储空间;一个变量操作 其他所有变量都会受到影响
(3)深拷贝:遍历循环 所有的 数据单元 复制拷贝 所有的具体数据数值
var obj1={name:'张三',age:18,sex:'男'};
const obj2={};
for(let key in obj1){
obj2[key]=obj1[key];
}
二、jQuery语法的深浅拷贝
$.extend(参数1,参数2) 将参数2的数据拷贝至 参数1(一维深拷贝,多维浅拷贝)
$.extend(true,参数1,参数2) 将参数2的数据拷贝至 参数1 中(所有都是深拷贝)
总结:
$.extend(参数1,参数2); ==>一维深,多维浅
$.extend(true,参数1,参数2) ==>都是深拷贝
三、jQuery的多库并存和放弃关键字
1、多库并存:
jquery是一个JavaScript的一个类库,使用关键词 $和jQuery来调用方法;
如果其他类库也使用$和jQuery作为关键词,就会造成程序执行的混乱;
可以 放弃/修改 jQuery的关键词
2、放弃/修改关键词
$.noConflict(); ==> $ 不能使用
$.noConflict(true); ==> $ jQuery都不能使用
const 变量=$.noConflict(true); ==>使用变量作为关键词调用jQuery