js实现深复制代码分享

关于js实现深复制,首先要明白的就是,要想实现对复杂对象的复制,用到的就是递归的思想。下面就是通过代码一步步来实现并讲解。

function deepClone(data1,data2){        var data2 = data2 || {}; //局部变量data2赋初值为接收的参数或者为一个空对象。        for(var key in data1){            if(typeof data1[key] === 'object'){ //依次判断data1对象的属性是不是对象                data2[key] =  (data1[key].constructor===Array) ? [] : {}                //判断要复制的项是对象还是数组                deepClone(data1[key],data2[key]); //递归实现            }else {                data2[key] = data1[key] //如果不是的可以直接相等            }        }        return data2;    }    var json = {"name":"小倪子麻麻","age": "20",arr1:[2,3,4,5]};    var json1 = {};    json1 = deepClone (json,json1);    json.arr1.pop();    console.log(json); //{"name":"小倪子麻麻","age": "20",arr1:[2,3,4]};    console.log(json1);//{"name":"小倪子麻麻","age": "20",arr1:[2,3,4,5]};

登录后复制

相关推荐:

php中关于浅复制和深复制的详解

JavaScript对象的深复制

Java中对象的深复制(深克隆)和浅复制(浅克隆)之序列化

以上就是js实现深复制代码分享的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2785790.html

(0)
上一篇 2025年3月8日 17:32:45
下一篇 2025年3月8日 17:32:51

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS中常用封装方法分享

    1.前言 大家在开发的时候应该知道,有很多常见的实例操作。比如数组去重,关键词高亮,打乱数组等。这些操作,代码一般不会很多,实现的逻辑也不会很难,下面的代码,我解释就不解释太多了,打上注释,相信大家就会懂了。但是,用的地方会比较,如果项目有…

    2025年3月8日
    000
  • D3.js 实现动态进度条实例

    d3 的全称是(data-driven documents),顾名思义可以知道是一个被数据驱动的文档。听名字有点抽象,说简单一点,其实就是一个 javascript 的函数库,使用它主要是用来做数据可视化的。如果你不知道什么是 javasc…

    2025年3月8日 编程技术
    200
  • node.js基础知识学习

    javascript之前一般用于web前段开发,然而由于node.js的出现,用javascript开发后端程序也不再是一件复杂的事情。node.js中js引擎来自于chrome v8浏览器,配合node.js额外开发的工具代码,本身使用起…

    编程技术 2025年3月8日
    200
  • element-ui实现单元格可编辑代码分享

    本文主要和大家分享element-ui实现单元格可编辑代码,希望能帮助到大家。 如下所示:       {{ scope.row.name }}              export default{ data(){ return { t…

    编程技术 2025年3月8日
    200
  • JS实现运动缓冲效果的封装函数分享

    本文主要和大家介绍了js实现运动缓冲效果的封装函数,涉及javascript时间函数与数值运算相关操作技巧,需要的朋友可以参考下,希望能帮助到大家。 之前经常写运动函数,要写好多好多,后来想办法封装起来。(运动缓冲)。 /*  物体多属性同…

    编程技术 2025年3月8日
    200
  • 怎样监听angularJs列表数据是否渲染完毕

    这次给大家带来怎样监听angularjs列表数据是否渲染完毕,监听angularjs列表数据是否渲染完毕注意事项有哪些,下面就是实战案例,一起来看一下。  前端在做数据渲染的时候经常会遇到在数据渲染完毕后执行某些操作,这几天就一直遇到在列表…

    编程技术 2025年3月8日
    200
  • JS实现checkBox的单选效果实例代码

    本文主要和大家分享JS实现checkBoxd的单选效果,简单说就是遍历所有的checkBox复选框,如果有一个已经选中,就将其他的checkBox框置为未选中,以此实现单选的效果,我看到很多博客也写了类似的功能,但大部分都是基于jquery…

    编程技术 2025年3月8日
    200
  • js跨域请求服务实例分析

    本文主要和大家分享js跨域请求服务实例分析,希望能帮助到大家。   function getAreaPosionsSucess(data){           alert(“请求成功”);        }       function …

    编程技术 2025年3月8日
    200
  • JS中正则表达式的理解

    1. 什么是正则表达式,正则: 规则,让计算机能够读懂我们写的规则,本质上来说,正则表达式就是一组规则的字符串, a 2 如何去学习正则表达式 d  表示的是数字 D  表示非数字 s  表示空格 1) 用这些特定的字符去写一套规则(我想要…

    编程技术 2025年3月8日
    200
  • JS中的事件入门讲解

    1 事件 事件可以理解为用户和浏览器的交互行为 2 事件函数绑定   事件函数: 当事件发生了,用于处理该事件的具体应对方案就是事件处理函数   表现出来就是一些代码块   例如: 当鼠标点击(事件)— 做什么操作?就由事件处理函数来完成 …

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论