千家信息网

js中如何实现对象拷贝

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,小编给大家分享一下js中如何实现对象拷贝,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!原生深克隆方法JSON.parse
千家信息网最后更新 2025年01月18日js中如何实现对象拷贝

小编给大家分享一下js中如何实现对象拷贝,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

  原生深克隆方法JSON.parse / stringify

  这是一种会丢失某些数据的克隆方法。

  如果你不使用Date,function,undefined,Infinity,正则表达式,Map集合,Set集合,Bolbs,FileLists,ImageDatas,稀疏数组sparse Arrays,类型化数组Typed ?Arrays或其他复杂类型的对象中,一个很简单的深克隆的对象方法就是:

  JSON.parse(JSON.stringify(object))

  以下为演示例子:

  ?打印出结果如下

  可以发现使用JSON.parse(JSON.stringify(object))丢失的数据类型比较多。所以在使用它的时候,我们需要清楚的知道目标对象object的数据类型。一般来说,如果我们需要处理的数据只有number,string,null类型,才推荐使用这个方法进行数据对象的克隆。

  使用库进行深克隆

  由于克隆对象并非易事(复杂类型,循环引用,函数等),因此大多数主要库都提供了克隆对象的功能。如果您已经在使用的库已经提供了克隆方法,你可以直接使用,大多数情况下库的克隆方法总比你自己写的完善得多。

  lodash:_.cloneDeep方法

  可以通过lodash.clonedeep模块单独导入,如果您尚未使用提供深度克隆功能的库,则可能是您的最佳选择

  Example

  AngularJS:angular.copy方法(Deep?Copy)

  angular.copy(source,?[destination]);

  jQuery:jQuery.extend(true, { }, oldObject);?

  输出结果

  jQuery还有一个。clone()的方法,仅克隆DOM元素。第一个参数为true,表示递归深层复制。这里不展开讨论。

  ES6的浅克隆

  为了完整起见,请注意ES6提供了两种浅表复制机制:Object.assign()和扩展运算符。

  Object.assign()

  MDN上说了:

  ?Object.assign()拷贝的是属性值。假如源对象sources的属性值是一个对象的引用,那么它也指向那个引用。

  如果源对象的属性值为简单类型(string, number),通过Object.assign({},obj1);那么会得到这个属性值的独立拷贝;如果属性值为对象或其它引用类型,那么它会指向这个对象的引用。这是Object.assign()特别值得注意的地方。

以上是"js中如何实现对象拷贝"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

对象 方法 类型 属性 数据 拷贝 篇文章 复杂 内容 功能 指向 数组 结果 这是 清楚 稀疏 并非易事 一般来说 不怎么 例子 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 sdf数据库创建 社会网络安全责任书 我的世界服务器消失了是咋回事 网工考试网络安全 软件开发投标商务沟通 软件开发岗前培训多久啊 上海网宇网络技术有限公司 上位机与服务器的连接 qq飞车手游车数据库 网络安全专项治理情况汇报 删除公司数据库怎么判刑 网络安全竞赛新闻稿 广发银行软件开发招聘 dnf服务器有哪几个 在web中使用什么访问数据库 网络安全关键技术三大类 浪潮的服务器修改管理口 软件开发类相关证书 鲲鹏系列服务器价格多少 软件开发的阶段概念结构设计 凯迪拉克注册会员显示服务器异常 网络安全总是弹窗 遵义市电子商务数据库技术 图书馆管理系统数据库图片 龙口微信小程序软件开发哪家靠谱 游戏服务器 架设 北京手机软件开发定制企业 成都四叶草网络安全有限公司 用数据库c 做学生成绩系统 宜兴自动软件开发商店
0