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,undefinedonullhasta el final de mi función. Sin embargo, agregar menullparece incorrecto por alguna razón. ¿Estoy en lo cierto al asumir que es la peor opción de las tres?undfinedal final. El uso de unareturndeclaración vacía parece expresar un retorno nada mejor que dejar unundefinedal final de la función, por lo que el vacíoreturnparece ser la mejor opción.fun(arguments...), sería mejor llamarfun.apply(this, arguments).Si, con un
returncomo ú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.prototypeen 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, tienevoidcomo 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.