【发布时间】:2011-04-12 05:05:24
【问题描述】:
好的,我们都知道有效的左侧表达式是什么。有点。*
但是,看the ECMA-Script standard的定义,我很困惑:
LeftHandSideExpression :
NewExpression
CallExpression
这只是定义中的错误,还是我这里有什么问题?我的意思是,这不是真的意思吗
new Object = 1; // NewExpression AssignmentOperator PrimaryExpression
function () { return foo; }() = 1;// CallExpression AssignmentOperator PrimaryExpression
应该是有效的赋值表达式吗?
* 根据我的拙见,这会更有意义:
LeftHandSideExpression :
Identifier
MemberExpression [ Expression ]
MemberExpression . IdentifierName
CallExpression [ Expression ]
CallExpression . IdentifierName
【问题讨论】:
-
如果您将函数调用括在括号中,您的第二个示例将起作用:
(function () { return window; }()).x = 1 -
@Daniel:对,我更新了示例
-
@user123444555621 您对
LeftHandSideExpression的(理解)定义缺少分组运算符( LeftHandSideExpression )。
标签: javascript grammar ecma262