Manipulação de Argumento Expansivo

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 firste lastser√£o armazenados nas respectivas vari√°veis, e todos os argumentos entre esses dois ser√£o armazenados como uma matriz na othervari√°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;
});