2025年js深拷贝和浅拷贝的实现方式(js深拷贝和浅拷贝的实现方式是什么)

js深拷贝和浅拷贝的实现方式(js深拷贝和浅拷贝的实现方式是什么)nbsp JS 浅拷贝与深拷贝只针对的是数组 Array 和对象 Object 两种引用数据类型 引用类型的数据在内存中分两部分存储 分别是存储在栈中的引用地址和存储在堆中的数据 浅拷贝其实拷贝的是引用类型数据的地址 两个对象共享堆中的数据 一个对象改变了某个属性值 另一个对象的属性值也会跟着改变 而深拷贝则会同时拷贝引用地址和数据 之后两个对象之间是完全独立的 互不影响

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



 

JS浅拷贝与深拷贝只针对的是数组(Array)和对象(Object)两种引用数据类型。引用类型的数据在内存中分两部分存储,分别是存储在栈中的引用地址和存储在堆中的数据。

浅拷贝其实拷贝的是引用类型数据的地址,两个对象共享堆中的数据,一个对象改变了某个属性值,另一个对象的属性值也会跟着改变。而深拷贝则会同时拷贝引用地址和数据,之后两个对象之间是完全独立的,互不影响。

 

浅拷贝实现方式


讯享网

深拷贝实现方式

1、var newObj = JSON.parse(JSON.stringify(obj));该方式实现简单,但是不能拷贝函数。

2、递归函数

注:因为JS并没有对hasOwnProperty属性名进行保护,在obj对象上可能存在同名的属性方法,如下:

obj.hasOwnProperty(i)条件语句将始终返回false,这显然不是我们期望的,所以可以使用原型上的hasOwnProperty方法,Object.prototype.hasOwnProperty.call(obj, i);

小讯
上一篇 2025-05-06 20:10
下一篇 2025-05-21 22:51

相关推荐

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