CoffeeScript fornece uma excelente sintaxe para lidar com uma ampla gama de cenários para argumentos de função esperados. Aqui estão alguns exemplos de alguns (alguns mais conhecidos do que outros).
Splats: permite mais controle dos argumentos de uma função quando uma quantidade incerta de parâmetros pode ser passada:
(first, others..., last) ->
Os argumentos first
e last
serão armazenados nas respectivas variáveis, e todos os argumentos entre esses dois serão armazenados como uma matriz na other
variável.
Splats são abordados na documentação do CS, mas menos conhecidos são os argumentos de função de manipulação de diferentes tipos de objetos. As funções abaixo são todas CS válidas:
Matrizes:
([firstElement, secondElement]) ->
Resulta em:
(function(_arg) {
var firstElement, secondElement;
firstElement = _arg[0], secondElement = _arg[1];
});
Objetos:
({firstKey, secondKey}) ->
Resulta em:
(function(_arg) {
var firstKey, secondKey;
firstKey = _arg.firstKey, secondKey = _arg.secondKey;
});
Variáveis ​​de instância:
(@firstObjectVariable, @secondObjectVariable) ->
Resulta em:
(function(firstObjectVariable, secondObjectVariable) {
this.firstObjectVariable = firstObjectVariable;
this.secondObjectVariable = secondObjectVariable;
});