js深度克隆

作者: 小白_pk | 来源:发表于2018-03-08 15:55 被阅读23次
function getType(data){
  return Object.prototype.toString.call(data).slice(8,-1)
}
function deepClone(data){
  let type = getType(data) , obj;
  if(type === 'Array'){
    obj = []
    data.forEach(item=>obj.push( deepClone(item) ))
  }else if(type === 'Object'){
    obj = {}
    for(let key in data){
      obj[key] = deepClone(data[key])
    }
  }else{
    return data
  }
  return obj
}

let obj1 = {a:1,b:{c:2,d:[3,4,{e:5}] }} ,
    obj2 = deepClone(obj1);
    obj2.b.d[2].e = 6
console.log(obj1 , obj2)

相关文章

  • js克隆

    实现 js 深度克隆 执行结果如下:

  • js深度克隆

  • js深度克隆

    在JAVAScript中数据类型分为两种,一种是原始数据类型,另外一种就是引用数据类型。 数据类型 原始数据类型:...

  • JS 深度克隆

    想要克隆一个对象或数组,如果只是普通的赋值,那么只是复制了浅层,深层的引用值其实指向的是同一块内存。 JSON克隆...

  • js对象深度克隆

    通用克隆方法 第一种方法简单粗暴,先将对象序列化再解析回来,不过要注意对象中如果有函数function则不能正确复...

  • JS实现深度克隆

    一、概念 深度克隆:深度克隆的新对象可以完全脱离原对象,我们对新对象的修改不会反映到原对象中 二、知识点储备: 1...

  • JS深度克隆实现

  • js实现深度克隆

    方法一 硬刚法(迭代法,适用于所有) 方法二 利用JSON.stringify 将js对象序列化(JSON字符串)...

  • js 浅拷贝和深拷贝

    js实现深拷贝(深度克隆)[https://www.cnblogs.com/cirry/p/13395291.ht...

  • js代码题

    js对象的深度克隆 js数组去重 js常用设计模式的实现思路,单例,工厂,代理,装饰,观察者模式等

网友评论

    本文标题:js深度克隆

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