大致可以分三种:对象的解构赋值、对象的拷贝、对象的合并;
1.对象的解构赋值
对象的解构赋值是把原对象里面的值浅拷贝到新的对象之中。...} = {a:1,b:2,c:3,d:4};
console.log("a",a,"b",b,"z",z); //a 1 b 2 z {c: 3, d: 4}
注意:
(1)对象的解构赋值的拷贝其实是浅拷贝...,否则会报错;
let {a,b,...z}=undefined; //运行时报错
let {a,b,...z}=null; //运行时报错
(3)解构赋值必须是最后一个参数,否则会报语法错误...let {a,...z,b}={a:1,b:2,n:{c:3,d:4}}; //SyntaxError
(4) 带...的解构赋值不会拷贝继承自原型对象的属性
let o1 = {
a...上面的例子中,x和y都是o的原型上的属性,x的解构赋值是简单的解构赋值,但是{y,z}的解构赋值是复合的解构赋值,y是o的原型上的属性,所以不能进行解构赋值,z是对象上的属性,可以解构赋值。