1.JSON的方法
// JSON的方法返回一个深拷贝后的对象
function deepClone(obj){
let newObj = JSON.stringify(obj)
return JSON.parse(newObj)
}
// 定义一个对象
let me = {
name: '彭于晏',
age: 18,
habbits:['code', 'work_out', 'eat', 'sleep']
}
// 通过deepClone方法返回的新对象赋值给Me,Me就是深拷贝后的对象
let Me = deepClone(me)
// 改变原对象的属性也不会影响新对象
me.name = '吴彦祖'
me.habbits.pop();
console.log(me);
console.log(Me);
2.Object.assign()
ES6位合并对象提供了 Object.assign() 方法,这个方法接受一个目标对象和一个或多个要合并的对象作为参数
- 如果需要合并的对象里都是基本数据类型的属性,则为深拷贝
- 如果要合并的对象里包括引用数据类型的属性,则该对于该引用数据类型为浅拷贝。
let obj1 = {
name: '彭于晏',
age: 18,
}
let obj2 = {
height: 188,