浅拷贝深拷贝

浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。修改新对象也会修改了旧对象

深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。

为了让对象数组能深拷贝,通过百度对各种深拷贝函数的理解,融合出一种对数组和对象的深拷贝函数

var deepCopy= function (source) { 

    var result = source.constructor === Array ? []:{};//用三目运算判断他是数组还是对象

    for (var key in source) {
      
        console.log(typeof source[key]);
        result[key] = typeof source[key]==='object'? deepCopy(source[key]): source[key];
  } 
  
return result;
}

 

posted on 2017-12-24 15:57  tzzf  阅读(147)  评论(0编辑  收藏  举报

导航