ES6中的非本地解构分配

时间:2015-03-03 21:47:09

标签: javascript syntax ecmascript-6

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

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

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

1 个答案:

答案 0 :(得分:4)

understandinges6 book中的“Syntax Gotcha”部分所述,您需要使用括号将其换行,否则会产生语法错误。开口花括号通常是块的开头,块不能是赋值表达式的一部分。

对我而言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中并不适合我,尽管该书说这应该有效。