美文网首页JavaScript 进阶营
对象的拷贝(浅拷贝与深拷贝)

对象的拷贝(浅拷贝与深拷贝)

作者: 这个超人不会飞阿 | 来源:发表于2018-10-11 10:18 被阅读18次

深拷贝与浅拷贝的主要区别就是对引用类型的拷贝问题.
对象的拷贝可以有3种实现方法

  • 1.jquery下的 $.extend(true,{},{....}) //这里的true表示深拷贝
  • 2.JSON.parse(JSON.string(a)); 缺点: 无法复制对象 原型链断了
  • 3.自己封装一个函数实现,如下
function copyDeep(obj) {
    var newObj = Array.isArray(obj) ? []:{};
    if(obj && typeof obj == 'object') {
        for ( var key in obj) {
            if(obj[key] && typeof obj[key]  == 'object') {
                newObj[key] = copyDeep(obj[key]);
            }else {
                newObj[key] = obj[key];
            }
        }
    }
  return newObj;
}
var a = [1,[1,2,3],'zzz'];
var b = copyDeep(a);
b[1][0]=99;
console.log(a);
image.png image.png

相关文章

  • 深浅拷贝,面向对象,Symbol,Set,Map

    一:浅拷贝与深拷贝对象的浅拷贝:浅拷贝是对象共用的一个内存地址,对象的变化相互影响。对象的深拷贝:简单理解深拷贝是...

  • 前端笔记(二) 对象的深浅拷贝,函数的防抖与节流,函数柯里化 ,

    对象的深浅拷贝 对象的深拷贝与浅拷贝的区别: 浅拷贝:仅仅复制对象的引用, 而不是对象本身。 深拷贝:把复制的对象...

  • java 对象的拷贝

    拷贝:即复制 对象拷贝:即对象复制 java 对象拷贝分类:浅拷贝、深拷贝 java 对象的浅拷贝和深拷贝针对包含...

  • iOS - copy与mutableCopy

    浅拷贝与深拷贝 浅拷贝:指针拷贝,不产生新的对象,源对象的引用计数器+1 深拷贝:对象拷贝,会产生新的对象,源对象...

  • js中的深拷贝和浅拷贝

    一、深拷贝与浅拷贝 深拷贝和浅拷贝只针对Object,Array这些复杂的引用对象。浅拷贝,只复制对象的引用的地址...

  • JAVA设计模式:原型模式与拷贝

    深拷贝与浅拷贝 浅拷贝:对象A进行赋值操作得到对象B,这就是浅拷贝,修改对象A的属性会影响到B的属性 深拷贝:深拷...

  • 2018-10-10函数基础

    深拷贝和浅拷贝 深拷贝 copy.deepcopy(对象)浅拷贝 copy.copy(对象)深拷贝: 将对象对应的...

  • 认识js下的浅拷贝与深拷贝

    浅拷贝与深拷贝 首先深拷贝和浅拷贝只针对像 Object, Array 这样的复杂对象的。简单来说,浅拷贝只拷贝一...

  • iOS深拷贝(MutableCopy)与浅拷贝(Copy)的区别

    深拷贝和浅拷贝的概念 iOS中有深拷贝和浅拷贝的概念,那么何为深拷贝何为浅拷贝呢?浅拷贝:浅拷贝并不拷贝对象本身,...

  • 2017.7.24总结

    1、深拷贝与浅拷贝浅拷贝是对于一个对象的顶层拷贝,拷贝了引用,没有拷贝内容。 深拷贝是对于一个对象所有层次的拷贝。...

网友评论

    本文标题:对象的拷贝(浅拷贝与深拷贝)

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