【发布时间】:2015-03-03 21:47:09
【问题描述】:
var { foo: bar } = { foo: 123 }; 有效。
{ foo: bar } = { foo: 123 }; 没有。
当bar是全局变量,但函数内部发生解构时,如何使后者工作?
【问题讨论】:
标签: javascript syntax ecmascript-6
var { foo: bar } = { foo: 123 }; 有效。
{ foo: bar } = { foo: 123 }; 没有。
当bar是全局变量,但函数内部发生解构时,如何使后者工作?
【问题讨论】:
标签: javascript syntax ecmascript-6
正如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 中不适合我,虽然书上说它应该可以工作。
【讨论】: