js的浅拷贝和深拷贝

一、数组:

1.浅拷贝

  直接赋值:let result = res;

2.深拷贝

  2.1  slice()方法

    let newList = res.slice();

  2.2  concat()方法

    let newList = res.concat();

  slice()和concat()这两个方法,仅适用于对不包含引用对象的一维数组的深拷贝

  2.3 JSON.parse 、JSON.stringify结合

    let result = JSON.parse(JSON.stringify(res)); <-- 数组夹杂对象用

    (先JSON.stringify() 转为json字符串, 再JSON.parse() 转为json数组)

    缺点:无法拷贝function

二、对象拷贝

 Object.create()方法

 复制对象存在于Object原型prototype中

var obj = {
    x: 1,
    y: {
        a: 1,
        b: 0,
        c: [1, 2, 3]
    }
};

var obj2 = Object.create(obj);
console.log(obj2 == obj); //false
console.log(obj2);

在这里插入图片描述

具体详细可参考:https://www.cnblogs.com/hjson/p/10243806.html

作者: 莯汐

出处: < http://www.cnblogs.com/Eileen-lu/>

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在页面明显位置给出原文链接。

原文地址:https://www.cnblogs.com/Eileen-lu/p/13535709.html