Il semble que CoffeeScript renvoie automatiquement le dernier élément d'une étendue. Puis-je éviter cette fonctionnalité?
coffeescript
Shamoon
la source
la source
Réponses:
Vous devez explicitement ne rien renvoyer, ou laisser une expression évaluée à indéfinie en bas de votre fonction:
Ou:
C'est ce que le doc recommande, lors de l'utilisation de compréhensions:
Vous pouvez cependant écrire un wrapper comme celui-ci:
(Remarquez l' opérateur splat ici (
...
))Et utilisez-le comme ceci lors de la définition des fonctions:
Ou comme ça:
la source
return
,undefined
ounull
à la fin de ma fonction. Cependant, l'ajoutnull
me semble faux pour une raison quelconque. Ai-je raison de supposer que c'est le pire choix parmi les trois?undfined
à la fin. L'utilisation d'unereturn
instruction vide semble n'exprimer rien de mieux que de laisser unundefined
à la fin de la fonction, donc le videreturn
semble être la meilleure option.fun(arguments...)
, il vaudrait mieux appelerfun.apply(this, arguments)
.Oui, avec un
return
comme dernière ligne d'une fonction.Par exemple,
Si vous souhaitez voir en quoi js le café se compile, essayez http://bit.ly/1enKdRl . (J'ai utilisé coffeescript redux pour mon exemple)
la source
Juste quelque chose d'amusant (ctional)
Function.prototype
elle-même est une fonction qui ne renvoie toujours rien. Vous pouvez utiliser compose pour diriger votre valeur de retour dans ce trou noir et la fonction composée ne retournera jamais rien.la source
la source
Il semble que les fonctions de CoffeeScript doivent toujours renvoyer quelque chose, même
null
. En C, vous avezvoid
comme type de retour.->
, la fonction vide, compile vers(function() {})
, donc c'est la seule fonction qui ne renvoie rien.la source
return;
fonctionne en C, JavaScript et CoffeeScript pour renvoyer une valeur void.