大致可以分三种:对象的解构赋值、对象的拷贝、对象的合并;
1.对象的解构赋值
对象的解构赋值是把原对象里面的值浅拷贝到新的对象之中。...",b,"z",z); //a 1 b 2 z {n:{c:1,d:7}};
z.n = {c:1,d:7};
console.log("z",z);//{n:{c:1,d:7}}
(2)对象解构赋值的右边必须是对象...,否则会报错;
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是对象上的属性,可以解构赋值。