【问题标题】:Non-local destructuring assignment in ES6 [duplicate]ES6中的非局部解构赋值[重复]
【发布时间】:2015-03-03 21:47:09
【问题描述】:

var { foo: bar } = { foo: 123 }; 有效。

{ foo: bar } = { foo: 123 }; 没有。

bar是全局变量,但函数内部发生解构时,如何使后者工作?

【问题讨论】:

    标签: javascript syntax ecmascript-6


    【解决方案1】:

    正如understandinges6 book 中的“语法陷阱”部分所述,您需要使用括号将其括起来,否则会产生语法错误。左大括号通常是块的开头,块不能是赋值表达式的一部分。

    这个worked给我:

    var bar;
    ({ foo: bar } = { foo: 123 });
    console.log(bar); // 123
    

    我也试过了:

    var bar;
    ({ foo: bar }) = { foo: 123 };
    console.log(bar); // ReferenceError: Invalid left-hand side in assignment at eval
    

    但后者在 es6lint 中不适合我,虽然书上说它应该可以工作。

    【讨论】:

      猜你喜欢
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 2020-05-19
      • 2018-05-04
      • 2019-07-11
      • 2017-04-19
      • 2018-06-16
      • 1970-01-01
      相关资源
      最近更新 更多