之前看同事写的对象的解构赋值也能理解,类似下面的代码:
let obj = {
name: 'xiaoliu',
age: 20,
say(){
console.log(`hello`)
}
}
const {name, age, say} = obj
console.log(`name is: ${name}, age is: ${age}`)
say()
输出如下:
name is: xiaoliu, age is: 20
hello
就是把对象中的各个属性给解构出来,不用再用对象点出来了。所以也就没再深究。 最近经常看到类似这样的代码:
let obj = {
name: 'xiaoliu',
age: 20,
say(){
console.log(`hello`)
}
}
const {name: n, age: a, say: s} = obj
console.log(`name is: ${n}, age is: ${a}`)
s()
意思是把obj对象中的name属性重新定义一个变量n, 解构出来后,直接用变量n。如果我们把解构出的变量名和属性名写成相同的,就可以看出
const {name, age, say} = obj 是const {name: name, age: age, say: say} = obj 的简写形式