O que é uma expressão válida do lado esquerdo na gramática JavaScript?
Ok, todos nósconhecer quais são as expressões válidas do lado esquerdo. Mais ou menos.*
Mas, olhando para a definição deo padrão ECMA-Script, Estou muito confuso:
LeftHandSideExpression :
NewExpression
CallExpression
Isso é apenas um erro na definição ou estou entendendo algo errado aqui? Quero dizer, isso realmente não significa que
new Object = 1; // NewExpression AssignmentOperator PrimaryExpression
function () { return foo; }() = 1;// CallExpression AssignmentOperator PrimaryExpression
devem ser expressões de atribuição válidas?
* Do meu humilde entendimento, isso faria muito mais sentido:
LeftHandSideExpression :
Identifier
MemberExpression [ Expression ]
MemberExpression . IdentifierName
CallExpression [ Expression ]
CallExpression . IdentifierName