1.利用拓展运算符
拓展运算符可以进行深拷贝
var obj1 = {name:"rookie",age:"20"}
var obj2 = {...obj1}
console.log(obj2);//{name: 'rookie', age: '20'}
obj2["game"] = "yxlm"
console.log(obj2);//{name: 'rookie', age: '20', game: 'yxlm'}
console.log(obj1);//{name: 'rookie', age: '20'}
2.利用for in循环遍历
利用for in循环把原对象中的属性一一对应的加入到新的对象中
var obj1 = {name:"rookie",age:"20"}
var obj2 = {}
for (var key in obj1) {
obj2[key] = obj1[key]
}
console.log(obj2);//{name: 'rookie', age: '20'}
obj2["game"] = "yxlm"
console.log(obj2);//{name: 'rookie', age: '20', game: 'yxlm'}
console.log(obj1);//{name: 'rookie', age: '20'}
3.利用Object.assign()方法合并对象
Object.assign()方法:将原对象的属性添加到目标对象中,若有同名属性,新的值会覆盖原有的值,且不会改变原对象
var obj1 = {name:"rookie",age:"20"}
var obj2 = Object.assign({},obj1)
console.log(obj2);//{name: 'rookie', age: '20'}
obj2["game"] = "yxlm"
console.log(obj2);//{name: 'rookie', age: '20', game: 'yxlm'}
console.log(obj1);//{name: 'rookie', age: '20'}