美文网首页
深拷贝的简单实现

深拷贝的简单实现

作者: zy懒人漫游 | 来源:发表于2018-06-03 04:22 被阅读0次

第一种方法

function deepClone(arg){
  if(arg === null || typeof arg !== 'object'){
    return arg
  } 
  if(arg instanceof Array){
    var copy= []
    for(let i = 0;i<arg.length;i++){
      copy.push(arg[i])
    }
    return copy
  }
  if(arg instanceof Date){
    var copy = new Date()
    copy.setTime(arg.getTime())
    return copy
  }
  if(arg instanceof Object){
    let copy = {}
    for(let key in value){
      if(arg.hasOwnProperty(key)){
        copy[key] = deepClone(arg[key])
      }
    }
    return copy
  }
}

var arg = [1,2,{a:'xxx',b:['yyy',{s:1}]}]
var arr1 = deepClone(arg)

console.log(arr1==arg);
console.log(arg);

第二种方法:

function deepClone(arr){
  return $.extend([], arr); //[]这里是数组方法,如果是对象深拷贝就是{}
}
var arr1= [1,[22,222],3,'jjj']
var arr2 = deepClone(arr1)
arr1.push(arr1)
console.log(deepClone(arr2));
console.log(arr1);

第三种方法:

var a = { n: {name:'whatever'} }; 
var b = JSON.parse( JSON.stringify(a) ); 

相关文章

  • js浅拷贝深拷贝

    js浅拷贝,深拷贝的简单实现 基础数据 浅拷贝 深拷贝

  • iOS基础知识点(网络摘抄)

    1.父类实现深拷贝时,子类如何实现深拷贝。父类没有实现深拷贝时,子类如何实现深拷贝? 深拷贝同浅拷贝的区别:...

  • 手写深拷贝

    手写深拷贝 深拷贝 深拷贝简单理解就是b是a的一份拷贝,且b中不存在a中对象的引用 深拷贝的实现 1.JSON序列...

  • 深拷贝、浅拷贝

    父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 深拷贝同浅拷贝的区别:浅拷贝...

  • 面试题整理

    父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 深拷贝同浅拷贝的区别:浅拷贝...

  • iOS面试基础一

    #父类实现深拷贝时,子类如何实现深度拷贝.父类没有实现深拷贝时,子类如何实现深度拷贝.# <(1)深拷贝同浅拷贝的...

  • 深拷贝VS浅拷贝

    深拷贝VS浅拷贝 本文主要对深拷贝&浅拷贝的解释及实现做一下简单记录。 之所以会有深拷贝与浅拷贝之分,是因为不同数...

  • iOS知识点(一)

    1.1 父类实现深拷贝时,子类如何实现深度拷贝。 父类没有实现深拷贝时,子类如何实现深度拷贝。深拷贝同浅拷贝的区别...

  • 深拷贝的简单实现

    第一种方法 第二种方法: 第三种方法:

  • 面试 (一) : 基础篇

    父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。• 深拷贝同浅拷贝的区别:浅拷...

网友评论

      本文标题:深拷贝的简单实现

      本文链接:https://www.haomeiwen.com/subject/ujidsftx.html