2018-05-22

数组与对象的深拷贝

对象
//1
var newObject = JSON.parse(JSON.stringify(oldObject));

//2
function clone(obj) {
      if (obj === null || typeof(obj) !== 'object' || 'isActiveClone' in obj)
        return obj;

      if (obj instanceof Date)
        var temp = new obj.constructor(); //or new Date(obj);
      else
        var temp = obj.constructor();

      for (var key in obj) {
        if (Object.prototype.hasOwnProperty.call(obj, key)) {
          obj['isActiveClone'] = null;
          temp[key] = clone(obj[key]);
          delete obj['isActiveClone'];
        }
      }

      return temp;
    }

// Shallow copy
var newObject = jQuery.extend({}, oldObject);

// Deep copy
var newObject = jQuery.extend(true, {}, oldObject);
数组
let a=[1,2,3]
let b=a.slice();
let c=a.concat();//或者使用ES7  let c = [...a],转码后也是concat
console.log(a === b)//false
console.log(a === c)//false
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一题 扑克牌顺子思路参考 https://blog.csdn.net/gg543012991/article/d...
    hayes0420阅读 139评论 0 0
  • 你早上起床第一件事是刷牙还是刷朋友圈? 我们很多人玩手机的时间太长了,价值六七千甚至上万的手机,它真的达到了它的价...
    橘子郡的天空阅读 389评论 0 2
  • 狗是人类最忠诚的朋友,他们有着一双雪亮的眼睛能看透世界的万物。它们跟咱们人类一样,都很机密,很聪明, 我家就有一只...
    12一二阅读 196评论 0 0
  • 从2016年七八月开始,互联网校招就如火如荼地展开了,此时多是提前批。在八月底九月的时候互联网的校招差不多就全...
    Now_And_Forever阅读 2,219评论 0 6