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