14-09-2013, 07:37 PM
Je viens de découvrir un petit truc sympa avec CoffeeScript (dans le sens où c'est un peu documenté, mais pas dans cette utilisation).
Qui compile en :
Le truc sympa, c'est de pouvoir capter ce qu'on veut dans les arguments reçus. Ici, ma fonction prend 2 arguments : un premier qu'on dans la variable
C'est très pratique quand on sait ce qu'on reçoit !
Et on peut faire le même genre de choses avec des tableaux :
Voilà, ça sert pas tous les jours, mais c'est sympa !
newGameSearchSubmitted = (itemView, { view, model: gameSearch }) ->
format = App.request('get_formats').get(event.target.elements.format_id.value)
gameSearch.set(format: format)
Qui compile en :
newGameSearchSubmitted = function(itemView, _arg) {
var format, gameSearch, view;
view = _arg.view, gameSearch = _arg.model;
format = App.request('get_formats').get(event.target.elements.format_id.value);
return gameSearch.set({
format: format
});
};
Le truc sympa, c'est de pouvoir capter ce qu'on veut dans les arguments reçus. Ici, ma fonction prend 2 arguments : un premier qu'on dans la variable
itemView
et un deuxième qui est un objet et donc on veut récupérer seulement certaines clés. Grâce à la syntaxe { view, model: gameSearch }
, on va récupérer la clé view
dans une variable view
, et la clé model
dans la variable gameSearch
.C'est très pratique quand on sait ce qu'on reçoit !
Et on peut faire le même genre de choses avec des tableaux :
doSomething = ([ first, second, others... ]) ->
# Le nommage est explicite mais :
# first contient le premier élément du tableau.
# second contient le… deuxième élément du tableau (undefined s'il n'y en a pas).
# others contient un tableau des autres éléments (un tableau vide s'il n'y en a pas).
# Bien sûr, si on ne veut que le premier élément on met [ first ].
doSomething = ([ first, others..., last ]) ->
# Là aussi, le nommage est explicite.
Voilà, ça sert pas tous les jours, mais c'est sympa !