如何将一个对象解构到已定义的变量中?

221
以下代码会导致语法错误:
let source,
    screenings,
    size;

source = {
    screenings: 'a',
    size: 'b'
};

{
    screenings,
    size
} = source;

预期结果:

screenings should be equal to 'a'
size should be equal to 'b'

1
请查看我在stackoverflow上的答案,了解如何将解构应用于现有变量或对象的方法。 - SNag
1个回答

425

你需要使用声明和赋值分离的析构语法

({
    screenings,
    size
} = source);

Babel REPL 示例

从链接文档中可以得知:

使用对象字面量解构赋值时,如果没有声明语句,则需要在赋值语句周围加上 ( .. )。

显然,你必须这样做,因为你不能重新声明一个 let 变量。如果你正在使用 var,你只需重新声明 var { screenings, size } = source;


42
正如我在这里的答案中也发表过的那样,如果您不使用分号编写JS,那么需要在此语法之前加上分号 - 即;({ screenings, size } = source) - davnicwil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接