What is the difference? I looked at the ECMAScript specification, but did not understand. The real code examples that would help much.
If you can explain every line
func() is a CallExpressionthing.func is a MemberExpression
thing is the object of the MemberExpressionfunc is the property of the MemberExpressionthing.func() is a MemberExpression within a CallExpression
thing.func is the callee of the CallExpressionSource: astexplorer.net.
The relevant parts here are
NewExpression:
MemberExpression
new NewExpression
LeftHandSideExpression:
NewExpression
CallExpression
which distinguishes the three major left hand side expressions:
And all of them with member accesses in the right places. As such, the difference between the productions you listed is just that a CallExpression always contains a call - and may therefore not be part of the expression after a newoperator.