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