jc.half = (function() {
return jc.singlerow ? jc.total : jc.total / 2;
})();
Хитрость в том, что когда у вас есть объявление функции, которое начинает таким образом, что синтаксический анализатор может сказать, что это должно быть значение в выражении, тогда определение функции является частью выражения, и вы можете использовать его таким образом и вызывать функцию. На самом деле, с правой стороны от такого назначения нет необходимости использовать круглые скобки, но я делаю это просто по привычке и проясняю для себя при чтении кода.
Конечно, в этом случае вы можете полностью опустить функцию.
jc.half = jc.singlerow ? jc.total : jc.total / 2;
изменить & mdash; полезные комментарии комментатора, о которых вы упоминаете, что вам нужно целое число; Если это так, вы хотите позвонить Math.floor()
или Math.round()
на ваш результат. Или вы могли бы немного «обмануть» и сделать это:
jc.half = ~~(jc.singlerow ? jc.total : jc.total / 2);