对象解构
通过key值提取相应的value
<script>
// 对象解构,通过key提取相应value
const student = {
name: 'lf',
age: 18
}
const name = 'tom';
// name: nameObj 重命名 以防与外部变量冲突
// 可设置默认值
const { name: nameObj = 'default'} = student;
console.log(nameObj) // 'lf'
</script>
- 实际使用场景
const { log } = console;
log(name); // tom log等同于 console.log
对象字面量
- 当属性名与属性值变量同名时,可以简写
- 可以拥有动态属性名,写在 [] 内
// 对象字面量
let foo = '123'
const obj = {
foo, // 属性简写
bar () {}, // 方法简写
[Math.random()]: 12 // 动态属性名
}
console.log(obj)
Object.assign
语法:Object.assign(target, source1, source2) 返回target
实践:往函数内传入对象参数的时候,如果函数内对obj进行操作可能会改变外部参数,为了让其不相互影响,可使用Object.assign
function test(obj) {
let temp = Object.assign({}, obj)
temp.name = 'lf'
return temp
}
const pf = {name: 'pf'}
const lf = test({name: 'pf'})
console.log('pf', pf) // {name: 'pf'}
console.log('lf', lf) // {name: 'lf'}