blog
blog copied to clipboard
ES7 对象展开运算符,Object Spread notation
####示例1
let objectA = {
a: 1,
b: 2
}
let objectB = {
...objectA,
c: 3
}
console.log(objectB)
//{a: 1, b: 2, c: 3}
...Object. 对象展开操作符,类似数组展开操作符,会将一个对象的一级属性全部取出:
let objectB = {
...objectA,
c: 3
}
等同于
let objectB = {
a: 1,
b: 2,
c: 3
}
####示例2
let objectC = {
a: 1,
b: 2
}
let objectD = {
...objectC,
b: 9,
c: 3
}
console.log(objectD)
//{a: 1, b: 9, c: 3}
被展开的对象后面位置的参数都将合并到被展开的对象内返回,并且覆盖同名参数。 上例等同于
let objectC = {
a: 1,
b: 2
}
let objectD = {
a: 1,
b: 2,
b: 9,
c: 3
}
console.log(objectD)
//{a: 1, b: 9, c: 3}
于是后面的参数b将前面的参数b覆盖了。
Object.assign 特殊用法 合并数组和对象
常用于 react hooks,可同时导出数组与对象两种模式
const a1=1
const a2=2
const a=[a1,a2]
const b={b1:3,b2:4}
const c=Object.assign(a,b)
console.log(c)
// [1, 2, b1: 3, b2: 4]
// 解构 c
const [c1,c2,c3]=c
console.log(c1)
// 1
console.log(c2)
// 2
console.log(c3)
// undefined
const {b1:c3,b2:c4}=c
console.log(c3)
// 3
console.log(c4)
// 4