JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在JavaScript中深层复制自定义对象?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在这里冲浪一段时间,仍然没有找到适合我的答案.

有没有办法在JS中深层复制非普通对象?

我已经尝试了jQuery.extend(true,{},this),但它只克隆了一些,其余的仍然作为对另一个对象的引用.

解决方法

以下是3种不同的复制对象的方法.每种方法都有利有弊,所以请仔细阅读并选择最适合您情况的方法

Object.assign方法

使用Object.assign,“用于将所有可枚举的自有属性的值从一个或多个源对象复制到目标对象”.这会复制值和函数.在撰写本文时,浏览器支持很好,但并不完美,但这是三者中最好的IMO方法.

const obj1 = {a:1,b:2};
const obj1Copy = Object.assign(obj1)

传播运算符方法

或者,您可以使用扩展运算符从一个对象扩展到另一个对象.请记住,这将复制键的值,但如果键的值是内存地址(另一个嵌套对象或数组),那么它只是一个浅拷贝.

const obj1 = {a: () => {},b:2}
const obj1Copy = { ...obj1 }

JSON字符串化/解析技巧

如果对象没有任何循环引用或函数作为值,则可以使用json Stringify技巧:

let myCopy = JSON.parse(JSON.Stringify(myObject));

不需要库,并且对大多数对象都很有效.

大佬总结

以上是大佬教程为你收集整理的如何在JavaScript中深层复制自定义对象?全部内容,希望文章能够帮你解决如何在JavaScript中深层复制自定义对象?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。