Comment écrire ceci dans coffeescript?
f = (function(){
// something
})();
Merci pour tous les conseils :)
javascript
javascript-framework
coffeescript
user537339
la source
la source
f = do -> console.log x
-> console.log 'this runs right away'
àf
, puis l'exécute; le vôtre exécute la fonction puis affecte son résultat àf
, comme dans la question d'origine. (Bien que dans le cas deconsole.log
, la valeur de retour est toujours deundefined
toute façon.){f: do -> // something}
do
vous permet également de passer des arguments à la fonction. Pour passer1
et2
comme paramètresx
ety
, écrivezdo (x = 1, y = 2) ->
. (La documentation de cette fonctionnalité s'est perdue , mais le problème où la fonctionnalité a été introduite a quelques exemples.)Si vous voulez "aliaser" les arguments passés à la fonction auto-appelante dans CoffeeScript, et disons que c'est ce que vous essayez de réaliser:
(function ( global, doc ) { // your code in local scope goes here })( window, document );
Alors
do (window, document) ->
ne vous laissera pas faire ça. La voie à suivre est alors avec les parents:(( global, doc ) -> # your code here )( window, document )
la source
do (global=window, doc=document) ->
c'est ridicule facile dans le café:
do ->
reviendra
(function() {})();
la source
Vous pouvez également combiner le
do
mot - clé avec des paramètres de fonction par défaut pour amorcer des «fonctions auto-initiées» récursives avec une valeur initiale. Exemple:do recursivelyPrint = (a=0) -> console.log a setTimeout (-> recursivelyPrint a + 1), 1000
la source
Essayez d'utiliser
do ($ = jQuery) ->
la source
do -> #your stuff here
Cela créera une fermeture auto-exécutable, ce qui est utile pour la portée.
la source
Toutes mes excuses, je l'ai résolu:
f = ( () -> "something" )()
la source
do
mot-clé a certaines limitations qui rendent parfois nécessaire l'utilisation de l'approche de style JS (voir numéro 960 );do
n'a été vraiment ajouté qu'à cause du cas d'utilisation de la boucle avec fermetures.Ça devrait être
f = () -> # do something
la source