一、使用for...in循环拷贝
利用for..in循环把原对象中的属性添加到新的对象中
var obj = [0,2,{a:5}];
var obj2=[]
for (var key in obj) {
obj2.push(obj[key])
}
console.log(obj2);//[0,2,{a:5}]
obj.push(1)
console.log(obj);//[0,2,{a:5},1]
console.log(obj2);//[0,2,{a:5}]
二、利用Object.assign()方法的合并
Object.assign() 方法:将源对象里面的属性添加到目标对象中去,若两者的属性名又冲突,后面的将会覆盖前面的
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const obj3 = { c: 5, d: 6 };
const obj4 = Object.assign(obj1, obj2, obj3);
console.log(obj4);
// obj4: {a: 1, b: 3, c: 5, d: 6}
三、利用拓展运算符
var aa = [1, 2, 3, 4],
bb = [...aa];
bb.push(5)
console.log(aa); //[1, 2, 3, 4]
console.log(bb); //[1, 2, 3, 4, 5]