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

深拷贝与浅拷贝的主要区别就是对引用类型的拷贝问题.
对象的拷贝可以有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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 最近的学习中,仔细研究了下深拷贝和浅拷贝,下面就来简单的总结下。 数据类型 首先我们了解下两种数据类型:1、基本类...
    iyimao阅读 827评论 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,991评论 1 45
  • 值类型与引用类型 谈浅拷贝与深拷贝之前,我们需要先理清一个概念,即值类型与引用类型。 什么是值类型与引用类型?这要...
    franose阅读 668评论 1 8
  • PNG 有PNG8和truecolor PNG PNG8类似GIF颜色上限为256,文件小,支持alpha透明度,...
    hudaren阅读 1,872评论 0 0
  • 我和赵先生在一起八年多了,他参与我的所有青春岁月。从懵懵懂懂,一路跌跌撞撞,有欢欢笑笑,有打打闹闹,到和和美美,这...
    遇见penny阅读 1,361评论 4 2

友情链接更多精彩内容