Iată explicațiile.
-
Aceasta este o apelare normală a metodei obiectului.
-
Similar, aici, parantezele nu schimbă ordinea operațiunilor, punctul este oricum primul.
-
Aici avem un apel mai complex
(expression).method()
. Apelul funcționează ca și cum ar fi împărțit în două linii:f = obj.go; // calculează expresia f(); // apelează ce avem
Aici
f()
este executat ca funcție, fărăthis
. -
Chestia similară cu
(3)
, la stânga punctului.
avem o expresie.
Pentru a explica comportamentul apelurilor (3)
și (4)
trebuie să ne reamintim că accesorii de proprietăți (punct sau paranteze pătrate) returnează o valoare de Tip Referință.
Orice operațiune pe aceasta, cu excepția unui apel de metodă (precum alocarea =
sau ||
) o transformă într-o valoare obișnuită, care nu poartă informațiile ce permit setarea variabilei this
.