正在破坏属性名称中具有连字符的对象



是否有方法将属性名称中带有连字符的对象destructure。在这样做的时候,我得到了一个SyntexError(这是合理的,因为JS不允许使用hyphen的变量名(。

let human= {
"first-name":"John",
"last-name":"Doe",
age:150
}
let {age}= human;
// let {"first-name"}= human;//error
// let {first-name}= human;//error
console.log(age)

您可以使用冒号语法对属性名称进行别名。

let human = {
"first-name": "John",
"last-name": "Doe",
age: 150
};
let { age, "first-name": firstName } = human;
console.log(age, firstName);

代码不适用的原因是first-name在Javascript中不是一个有效的变量名,因为它在console.log(first-name)期间将其视为减号运算符,而不是连字符。因此,修复方法可能是将对象属性重命名为first_name,并在其他地方使用它。

let human= {
"first-name":"John",
"last-name":"Doe",
age:150
}
let {age}= human;
let {'first-name':first_name}= human;
console.log(first_name)

最新更新