843 B
843 B
Here's the explanations.
-
That's a regular object method call.
-
The same, brackets do not change the order of operations here, the dot is first anyway.
-
Here we have a more complex call
(expression).method()
. The call works as if it were split into two lines:f = obj.go; // calculate the expression f(); // call what we have
Here
f()
is executed as a function, withoutthis
. -
The similar thing as
(3)
, to the left of the dot.
we have an expression.
To explain the behavior of (3)
and (4)
we need to recall that property accessors (dot or square brackets) return a value of the Reference Type.
Any operation on it except a method call (like assignment =
or ||
) turns it into an ordinary value, which does not carry the information allowing to set this
.