2025年js中的深拷贝和浅拷贝(js深拷贝和浅拷贝的方法)

js中的深拷贝和浅拷贝(js深拷贝和浅拷贝的方法)p strong 浅拷贝 strong 是指拷贝对象本身和第一层属性 而不拷贝嵌套在其内部的对象和数组 如果原始对象中的属性值为基本数据类型 则会被拷贝到新对象中 如果是对象或数组 则只会复制它们的引用 这意味着如果原始对象的属性值发生变化 p

大家好,我是讯享网,很高兴认识大家。



 <p><strong>浅拷贝</strong>是指拷贝对象本身和第一层属性&#xff0c;而不拷贝嵌套在其内部的对象和数组。如果原始对象中的属性值为基本数据类型&#xff0c;则会被拷贝到新对象中&#xff0c;如果是对象或数组&#xff0c;则只会复制它们的引用。这意味着如果原始对象的属性值发生变化&#xff0c;拷贝后的对象的属性值也会随之变化&#xff0c;因为它们引用的是相同的内存空间。</p> 

讯享网

深拷贝是指递归地拷贝所有嵌套在对象内部的对象和数组,直到所有属性值都是基本数据类型为止。这样,即使原始对象的属性值发生变化,拷贝后的对象的属性值也不会受到影响,因为它们引用的是不同的内存空间。

在 JS中,可以使用以下方法实现浅拷贝和深拷贝:

浅拷贝的几种常用方法::

  1.使用Object.assign()方法

讯享网

  2.使用数组的slice()方法

 

 3.使用扩展运算符(…)

讯享网

  4.使用cloneNode()方法(仅适用于对象字面量的浅拷贝)


讯享网

 

需要注意的是,这些方法都不能处理函数、Symbol、包含循环引用的对象等。如果需要处理这些复杂情况,就需要使用深拷贝的方法

深拷贝的几种常用方法:

   1.使用递归的方式进行对象(数组)的深拷贝

讯享网

    2.使用lodash库中的方法进行深拷贝

 

3. 使用jQuery中的方法进行深拷贝

讯享网

4.使用JSON序列化和反序列化进行深拷贝

 

需要注意的是使用JSON序列化和反序列化进行深拷贝的方法只适用于对象中不包含函数、undefined、NaN、Infinity、-Infinity以及循环引用的情况

小讯
上一篇 2025-04-28 15:21
下一篇 2025-04-28 07:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/141022.html