千家信息网

js中如何实现对象拷贝

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下js中如何实现对象拷贝,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!原生深克隆方法JSON.parse
千家信息网最后更新 2026年11月02日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安全错误 数据库的锁怎样保障安全 广州大一互联网络科技有限公司 云信互联网科技有限公司 互联网最新的科技有限公司 碳银互联网科技 伴你行互联网科技有限公司 广州紫鲸互联网科技 科技互联网创业计划书 互联网科技类展会 互联网金融科技展 华夏恒生科技与互联网科技 翼展科技 首家互联网医院 互联网数据科技专业 互联网方面的科技前沿 山东子淼互联网科技有限公司 互联网科技数字货币 卡尔迅互联网科技有限公司 广州有谷有贝互联网科技有限公司 互联网科技手机排行榜 盐城市攀科互联网科技有限公司 现代科技的标志之一的互联网 百单网互联网科技有限公司 互联网科技工作委员会 北京互联网科技有限公司 远信互联网科技 上海亿帐通互联网科技 科技类的互联网平台 互联网为啥属于高科技 辽宁互联网新科技 保险科技服务互联网营销体系 科技发展第三阶段互联网时代
0