Термін "оператор бризки" походить від Ruby, де *символ (іноді його називають "splat" - див. Запис у файлі Jargon ) використовується для позначення того, що запис у списку аргументів повинен "всмоктувати" список аргументів.
CoffeeScript дуже рано сприйняв урізноманітні стилі Ruby (див. Випуск 16 ), але за пропозицією Дугласа Крокфорда синтаксис було змінено *xна x...пару тижнів (див. Випуск 45 ). Тим не менш, CoffeeScripters все ще називають синтаксис як "splat" або "splat operator".
Щодо того, що вони насправді роблять, argumentssplats нарізає об'єкт таким чином, що аргументований аргумент стає масивом усіх "зайвих" аргументів. Найбільш банальний приклад - це
(args...) ->
У цьому випадку argsбуде просто копія масиву arguments. Планові аргументи можуть надходити або перед, після, або між стандартними аргументами:
(first, rest...) ->
(rest..., last) ->
(first, rest..., last) ->
У перших двох випадках, якщо функція отримує аргументи 0-1, restбуде порожнім масивом. В останньому випадку функції потрібно отримати більше 2 аргументів, restщоб бути не порожнім.
Оскільки JavaScript не дозволяє використовувати кілька підписів для функцій з одним і тим же іменем (як це роблять C і Java), значки значної економії часу для роботи з різною кількістю аргументів.
arguments+call: stackoverflow.com/questions/17380315 / ...