计算属性名
let obj = {
a: 1,
b: 2,
[Math.random()]: 3
}
console.log('obj: ', obj);
// obj: { a: 1, b: 2, '0.6494800947739248': 3 }
计算出来属性的最终结果当作属性名
Object.assign()
把一个源对象复制到目标对象,并返回目标对象
let target = { a: 1, b: 2 }
let sourcel = { a: 1, c: 3 }
let obj3 = Object.assign(target, sourcel)
console.log('obj3: ', obj3); // { a: 1, b: 2, c: 3 }
console.log(obj3 === target); // true 返回对象和目标对象指向的有一个内存地址
- 应用:众所周知,obj3,target指向的同一个对象,修改其中一个,则另一个也会变化。
let obj4 = Object.assign({}, obj3) // 把obj3复制到新对象{}即obj4,
// 此时obj3,obj4(实际指向{}的内存地址)指向不一致
obj4.a = 11
console.log('obj4: ', obj4); // { a: 11, b: 2, c: 3 }
console.log('obj3: ', obj3); // { a: 1, b: 2, c: 3 }
- 设置默认值