如何将对象解构为已定义的变量?

Gaj*_*jus 69 javascript ecmascript-6

以下产生语法错误:

let source,
    screenings,
    size;

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

{
    screenings,
    size
} = source;
Run Code Online (Sandbox Code Playgroud)

预期结果:

screenings should be equal to 'a'
size should be equal to 'b'
Run Code Online (Sandbox Code Playgroud)

Cod*_*gue 154

您需要使用赋值而不使用声明语法:

({
    screenings,
    size
} = source);
Run Code Online (Sandbox Code Playgroud)

Babel REPL示例

来自链接的文档:

在没有声明的情况下使用对象文字解构赋值时,赋值语句周围的(..)是必需的语法

显然你需要使用它,因为你不能重新声明let变量.如果您正在使用var,您可以重新声明var { screenings, size } = source;

  • 正如我在[答案中](/sf/answers/3924802381/)上所张贴的那样,如果您*不要*用分号写JS,即[;( {尺寸,筛分} =来源)` (8认同)