深拷贝和浅拷贝只是针对Object和Array这样的引用数据类型的。
Array
// 1.slice()
let obj = [1, 2];
let copy = obj.slice(); // [1, 2]
// 2.conact()
let obj = [1, 2];
let copy = obj.concat() // [1, 2]
// 3. Es6 ...运算符
let obj = [1,2];
let copy = [...obj] // [1, 2]
// 4. JSON.parse()与JSON.stringify() 深拷贝
let obj = [{ name: 'wang', age: 22 }];
let copy = JSON.parse(JSON.stringify(obj)) // [{ name: 'wang', age: 22 }]
Object
// 1.Object.assign()
let obj = { name: 'wang', age: 22 };
let copy = Object.assing(obj) // { name: 'wang', age: 22 }
// 2. Es6 ...运算符
let obj = { name: 'wang', age: 22 };
let copy = [...obj] // { name: 'wang', age: 22 }
// 3. JSON.parse()与JSON.stringify() 深拷贝
let obj = [{ name: 'wang', age: 22 }];
let copy = JSON.parse(JSON.stringify(obj)) // [{ name: 'wang', age: 22 }]