Можете да инициализирате две променливи до една и съща стойност наведнъж, някак:
var foo, bar; foo = bar = 10;
Но няма подобен лесен механизъм за добавяне, да речем, 5 към двете foo
и bar
едновременно. Разбира се, достатъчно е просто да направите:
foo += 5; // foo is now 15 bar += 5; // bar is now 15
Но това са две операции.
Номерът е:
foo += -bar + (bar += 5); // foo and bar are now 15
Вероятно никога няма да имате нужда от това, просто е интересно да знаете, че е възможно.
Благодаря на Матеус Авелар, че изпрати този малък умопомрачителен трик, който също обяснява:
Анализът
-bar
се анализира и се превръща в отрицателна стойност наbar
, така че -10. След товаa += 5
изпълнява и задаваbar
на 15 (10 + 5). И накрая, сумира двете стойности (-10 + 15) и ви дава разликата между стараbar
и новаbar
, която е 15.