如何区分JavaScript和jQuery中的深拷贝与浅拷贝,并深入理解其原理和应用场景?
- 内容介绍
- 文章标签
- 相关推荐
本文共计725个文字,预计阅读时间需要3分钟。
目录 + JS的浅拷贝 + JS的深拷贝 + jQuery的深浅拷贝 + 总结 + 深浅拷贝在引用数据类型(数组/对象)复制过程中的问题 + JS的浅拷贝 + 直接复制数组/对象的内存地址,本质上是一个引用
目录
- JS的浅拷贝
- JS的深拷贝
- jQuery的深浅拷贝
- 总结
深浅拷贝在引用数据类型(数组对象)复制过程中产生的问题。
JS的浅拷贝
直接复制拷贝的是数组/对象的内存地址,本质上是一个引用数据类型,所有的变量存储的是相同的内存地址,操作的是同一个存储空间,任意一个变量的操作,其他变量都会受影响。如下所示:
const arr1 = ['北京', '上海', '广州', '深圳', '武汉']; const arr2 = arr1; console.log(arr1); console.log(arr2);
变量arr1中存储的是数组的内存地址,浅拷贝是将变量arr1中存储的数组的内存地址赋值给变量arr2存储,也就是变量arr2和变量arr1存储的是相同的内存地址,通过其中一个变量操作数组,另一个变量也受影响,将arr1里的北京改为天津,那么arr2里的北京也就变成了天津。
本文共计725个文字,预计阅读时间需要3分钟。
目录 + JS的浅拷贝 + JS的深拷贝 + jQuery的深浅拷贝 + 总结 + 深浅拷贝在引用数据类型(数组/对象)复制过程中的问题 + JS的浅拷贝 + 直接复制数组/对象的内存地址,本质上是一个引用
目录
- JS的浅拷贝
- JS的深拷贝
- jQuery的深浅拷贝
- 总结
深浅拷贝在引用数据类型(数组对象)复制过程中产生的问题。
JS的浅拷贝
直接复制拷贝的是数组/对象的内存地址,本质上是一个引用数据类型,所有的变量存储的是相同的内存地址,操作的是同一个存储空间,任意一个变量的操作,其他变量都会受影响。如下所示:
const arr1 = ['北京', '上海', '广州', '深圳', '武汉']; const arr2 = arr1; console.log(arr1); console.log(arr2);
变量arr1中存储的是数组的内存地址,浅拷贝是将变量arr1中存储的数组的内存地址赋值给变量arr2存储,也就是变量arr2和变量arr1存储的是相同的内存地址,通过其中一个变量操作数组,另一个变量也受影响,将arr1里的北京改为天津,那么arr2里的北京也就变成了天津。

