前端/JS/深浅拷贝-引用数据类型/jQuery语法的深浅拷贝/多库并存

一、深浅拷贝含义:

        (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

                

上一篇:JavaScript(ES6)之扩展运算符


下一篇:反射和代理