`

js 深拷贝

    博客分类:
  • js
阅读更多

一。js深拷贝方式:

      1、递归实现。

 function clone(data) {
      if (typeof data === 'object') {
        var newData = Array.isArray(data) ? [] : {};
        for (var i in data) {
          newData[i] = clone(data[i])
        }
        return newData;
      } else {
        return data;
      }
    }
    var a = {a: 1, b: 2, c: {d: 1}};
    var b = clone(a)
    console.log(b)
    b.c.d = 3
    console.log(a,b)

      2、JSON.stringify和JSON.parse实现。

function cloneTwo(data) {
     var newData = JSON.stringify(data);
     return JSON.parse(newData);
    }
    var aa = {a: 1, b: 2, c: {d: 1}};
    var bb = cloneTwo(aa)
    console.log(bb)
    bb.c.d = 3
    console.log(aa,bb)

 

 

分享到:
评论

相关推荐

    深拷贝.js(考虑最全的深拷贝函数)

    js考虑最完善的深拷贝函数,可以深拷贝引用对象和基本对象

    javascript深拷贝

    javascript深拷贝demo,有封装好的深拷贝函数和调用的demo

    js深拷贝与浅拷贝详解以及例子.pdf

    js深拷贝与浅拷贝详解以及例子

    【JavaScript源代码】JavaScript深拷贝的一些踩坑记录.docx

    JavaScript深拷贝的一些踩坑记录  之前去一家公司面试的时候,面试官问了我一个问题,说:"如何才能深拷贝一个对象"。当时我心里有些窃喜,这么简单的问题还用想吗?于是脱口而出:"平时常用的有两种办法,第一种用...

    JavaScript深拷贝和浅拷贝概念与用法实例分析

    本文实例讲述了JavaScript深拷贝和浅拷贝概念与用法。分享给大家供大家参考,具体如下: js中的浅拷贝和深拷贝,只是针对复杂数据类型(Objcet,Array)的复制问题。简单来讲浅拷贝和深拷贝都可以实现在原有对象的基础...

    Jingce-lu#lunotes#JS深拷贝1

    手写一个JS深拷贝手写一个JS深拷贝乞丐版面试够用版乞丐版var newObj = JSON.parse( JSON.stringify( someObj )

    javascript深拷贝、浅拷贝和循环引用深入理解

    本文给大家详细讲述了javascript深拷贝、浅拷贝和循环引用的相关知识点,对此有兴趣需求的朋友学习下。

    javascript深拷贝的原理与实现方法分析

    主要介绍了javascript深拷贝的原理与实现方法,简单分析了值传递和引用传递的原理与实现方法,并结合实例形式给出了深拷贝的具体实现技巧,需要的朋友可以参考下

    最专业的深拷贝JS库

    通过递归方式实现的深拷贝,支持对象和数组的深拷贝,其他类型数据会浅拷贝;支持父子元素循环引用

    js数组的深拷贝

    NULL 博文链接:https://13521308103.iteye.com/blog/1922763

    javascript深拷贝(deepClone)详解

    主要介绍了javascript深拷贝(deepClone)详解的相关资料,需要的朋友可以参考下

    【JavaScript源代码】详解JS变量存储深拷贝和浅拷贝.docx

    详解JS变量存储深拷贝和浅拷贝  目录 变量类型与存储空间栈内存和堆内存基本数据类型引用类型图解存储空间引用类型的赋值深拷贝和浅拷贝深拷贝浅拷贝对象的赋值三者对比浅拷贝的常用的五种方法Object.assign()扩展...

    JavaScript 深拷贝 递归 手写

    今天的学习笔记写在了自己的网页笔记本上,没有记录到博客,但是学到一个有关深拷贝的实现方法,为加深印象,这里给大家分享一下: 深拷贝:就是拷贝到最底层的属性。 function deepCopy(object){ //这里传入一个...

    多维数组和对象-深去重和深拷贝.js

    对多维数组,对象,进行去重,相同的值只保留一个,常见的new Set()和filter,只能去重一维数组,并不能进行深层的去重,逻辑:判断是否为对象,为对象判断是否为数组或是真的对象,递归一直筛选为值,判断首次...

    JS浅拷贝和深拷贝原理与实现方法分析

    主要介绍了JS浅拷贝和深拷贝原理与实现方法,结合实例形式分析了javascript浅拷贝及深拷贝相关概念、原理、实现方法与操作注意事项,需要的朋友可以参考下

    js 深拷贝函数

    Javascript中的对像赋值与Java中是一样的,都为引用传递.就是说,在把一个对像赋值给一个变量时,那么这个变量所指向的仍就是原来对像的地址.那怎么来做呢 答案是克隆.

    javascript深拷贝和浅拷贝详解

    本文主要介绍了javascript深拷贝和浅拷贝的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧

Global site tag (gtag.js) - Google Analytics