Por que a desestruturação de objetos gera um erro se não há uma var
palavra-chave antes dela?
{a, b} = {a: 1, b: 2};
lança SyntaxError: expected expression, got '='
Os três exemplos a seguir funcionam sem problemas
var {a, b} = {a: 1, b: 2};
var [c, d] = [1, 2];
[e, f] = [1, 2];
Pergunta bônus: por que não precisamos de uma var
para a desestruturação do array?
Eu encontrei o problema fazendo algo como
function () {
var {a, b} = objectReturningFunction();
// Now a and b are local variables in the function, right?
// So why can't I assign values to them?
{a, b} = objectReturningFunction();
}