Parece que CoffeeScript devuelve automáticamente el último elemento de un alcance. ¿Puedo evitar esta funcionalidad?
coffeescript
Shamoon
fuente
fuente
Respuestas:
Debe devolver nada explícitamente o dejar una expresión que se evalúe como indefinida en la parte inferior de su función:
O:
Esto es lo que recomienda el documento, al usar comprensiones:
Sin embargo, podría escribir un contenedor como este:
(Observe el operador de splat aquí (
...
))Y utilícelo así al definir funciones:
O así:
fuente
return
,undefined
onull
hasta el final de mi función. Sin embargo, agregar menull
parece incorrecto por alguna razón. ¿Estoy en lo cierto al asumir que es la peor opción de las tres?undfined
al final. El uso de unareturn
declaración vacía parece expresar un retorno nada mejor que dejar unundefined
al final de la función, por lo que el vacíoreturn
parece ser la mejor opción.fun(arguments...)
, sería mejor llamarfun.apply(this, arguments)
.Si, con un
return
como última línea de una función.Por ejemplo,
Si desea ver con qué js se compila el café, pruebe http://bit.ly/1enKdRl . (He usado coffeescript redux para mi ejemplo)
fuente
Solo algo divertido (opcional)
Function.prototype
en sí misma es una función que siempre no devuelve nada. Puede usar componer para canalizar su valor de retorno a este agujero negro y la función compuesta nunca devolverá nada.fuente
fuente
Parece que las funciones en CoffeeScript siempre deben devolver algo, incluso
null
. En C, tienevoid
como tipo de retorno.->
, la función vacía, se compila(function() {})
, por lo que es la única función que no devuelve nada.fuente
return;
funciona en C, JavaScript y CoffeeScript para devolver un valor nulo.