Parece que o CoffeeScript retorna automaticamente o último item em um escopo. Posso evitar essa funcionalidade?
coffeescript
Shamoon
fonte
fonte
Respostas:
Você não deve retornar nada explicitamente ou deixar uma expressão avaliada como indefinida na parte inferior de sua função:
Ou:
Isso é o que o doc recomenda, ao usar compreensões:
Você poderia, no entanto, escrever um wrapper como este:
(Observe o operador splat aqui (
...
))E use-o assim ao definir funções:
Ou assim:
fonte
return
,undefined
ounull
até o fim da minha função. No entanto, adicionarnull
parece errado para mim por algum motivo. Estou certo em presumir que é a pior escolha entre as três?undfined
no final. Usar umareturn
instrução vazia parece expressar return nada melhor do que deixar umundefined
no final da função, portanto, vazioreturn
parece ser a melhor opção.fun(arguments...)
, seria melhor ligarfun.apply(this, arguments)
.Sim com um
return
como a última linha de uma função.Por exemplo,
Se você gostaria de ver o que js o café compila, tente http://bit.ly/1enKdRl . (Eu usei redux do coffeescript para o meu exemplo)
fonte
Apenas algo divertido (opcional)
Function.prototype
em si é uma função que sempre não retorna nada. Você pode usar compose para canalizar seu valor de retorno para este buraco negro e a função composta nunca retornará nada.fonte
fonte
Parece que as funções em CoffeeScript devem sempre retornar algo, mesmo
null
. Em C, você temvoid
como tipo de retorno.->
, a função vazia compila para(function() {})
, portanto, é a única função que não retorna nada.fonte
return;
funciona em C, JavaScript e CoffeeScript para retornar um valor void.