В Coffeescript вы можете вызвать функцию, которая принимает аргументы с круглыми скобками или без них:
foo(1,2)
foo 1, 2
Если у вас есть пробел, то он хорошо интерпретирует все, что следует в той же строке, что и аргументы.Давайте возьмем пример другой функции bar
, которая принимает только один аргумент:
bar = (x) -> x * x
Вы можете вызвать это с пробелом перед круглой скобкой:
bar (2)
# ---> 4
Это потому, что скобкав Coffeescript (или Javascript) может использоваться для переноса выражения, а также для вызова функции.Типичные примеры - в операторах if
или для сложных условных / математических выражений.В случае bar (2)
содержимое выражения оценивается просто как 2 (так же, как если бы вы ввели 2
в кофейный CLI).Затем он передается в bar
, как если бы вы вызвали bar 2
.
Для вашей функции foo
, которая принимает два аргумента, она оценивает (1,2)
как выражение.Но ,
не является допустимым оператором, поэтому выдает ошибку.Так же, как если бы вы ввели 1,2
в кофейный CLI.