Galite vienu metu inicializuoti du kintamuosius į tą pačią vertę:
var foo, bar; foo = bar = 10;
Bet nėra panašiai lengvo mechanizmo, kad būtų galima pridėti, tarkime, 5 prie abiejų foo
ir bar
tuo pačiu metu. Žinoma, tai pakankamai paprasta:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Bet tai dvi operacijos.
Apgaulė yra:
foo += -bar + (bar += 5); // foo and bar are now 15
Jums to tikriausiai niekada nereikės, tiesiog įdomu žinoti, kad tai įmanoma.
Ačiū Matheusui Avellarui, kuris atsiuntė šį mažą proto klastojimo triuką, kuris taip pat paaiškina:
-bar
Gauna apdoroti ir tampa neigiamą vertębar
, todėl -10. Tadaa += 5
bėga ir nustatobar
15 (10 + 5). Galiausiai, ji apibendrina abi reikšmes (-10 + 15) ir pateikia skirtumą tarp senobar
ir naujobar
, kuris yra 15.