La réponse de Matt est correct, mais voici une méthode alternative:
Dans CoffeeScript 1.0 (publié quelques semaines après question a été posée), un opérateur do
a été introduit qui exécute la fonction qui le suit immédiatement. Il est surtout utilisé pour capturer les variables dans les boucles, depuis
for x in arr
do (x) ->
setTimeout (-> console.log x), 50
(qui passe une référence à x
dans la fonction anonyme) se comporte différemment
for x in arr
setTimeout (-> console.log x), 50
Ce dernier sera tout simplement la sortie de la dernière entrée dans arr
à plusieurs reprises , puisqu'il n'y en a qu'un seul x
. Quoi qu'il en soit, vous devez connaître do
pour exécuter une fonction anonyme sans les parenthèses supplémentaires, bien que ses capacités en termes de passage d'argument soient un peu limitées pour le moment. J'ai soulevé un proposal to broaden them.
Actuellement, l'équivalent de votre exemple de code serait
do ->
$ = jQuery
...
Si ma proposition est acceptée, il sera possible d'écrire
do ($ = jQuery) ->
...
à la place.
Le [site CoffeeScript] (http://jashkenas.github.com/coffee-script/) a une * Essayez CoffeeScript * La fonction, qui compile JavaScript à la volée. J'ai été capable de comprendre la réponse dans quelques minutes en jouant avec elle. –