我的短毛猫给我带来了销毁的麻烦。
当我尝试破坏结构时,它使我出错,如以下代码片段所示:
const data = {
status: 'example',
};
let status = 'foo';
{
status,
} = data;
console.log(status);
当变量已经存在时,有没有办法使用解构?
再次使用let
:
const data = {
status: 'example',
};
let status = 'foo';
let {
status,
} = data;
console.log(status);
答案 0 :(得分:9)
在解构前后加上括号
摘自文档:Assignment without declaration
使用不带声明的对象文字解构分配时,需要在赋值语句周围加上括号(...)。
{a, b} = {a: 1, b: 2}
是无效的独立语法,因为左侧的{a, b}
被认为是一个块,而不是对象文字。不过,
({a, b} = {a: 1, b: 2})
和var {a, b} = {a: 1, b: 2}
都是有效的您的(...)表达式必须以分号开头,或者可以用于执行上一行的函数。
const data = {
status: 'example',
};
let status = 'foo';
({ status } = data);
console.log(status);