…运算符
拷贝举例
let animal = {type:'cat',name:'vivi',children:{
name:"ch1",
age:1
}};
let copy = {...animal};
animal.name = "hihi";
animal.children.age = 6;
console.log('copy',copy);
console.log('animal',animal);
运行结果
由以上运行结果可以看出,...
运算符进行对象拷贝的时候
对于第一层的元素来说,修改源对象的元素值,新拷贝的对象对应元素值不会被影响;
但是对于再深层次的元素来说,修改源对象的元素值,新拷贝的对象对应元素值也会跟着变化。
Object.assign()
举例
let animal = {type:'cat',name:'vivi',children:{
name:"ch1",
age:1
}};
let copy = Object.assign({},animal);
animal.children.age = 9;
animal.name = "hoho";
console.log('copy',copy);
console.log('animal',animal);
运行结果
由以上运行结果可以看出,Object.assign()
实现对象拷贝的时候
对于第一层的元素来说,修改源对象的元素值,新拷贝的对象对应元素值不会被影响;
但是对于再深层次的元素来说,修改源对象的元素值,新拷贝的对象对应元素值也会跟着变化。