Wygląda na to, że CoffeeScript automatycznie zwraca ostatnią pozycję w zakresie. Czy mogę uniknąć tej funkcji?
coffeescript
Shamoon
źródło
źródło
Odpowiedzi:
Musisz jawnie nic nie zwracać lub pozostawić na dole funkcji wyrażenie oceniające jako niezdefiniowane:
Lub:
Oto, co zaleca dokument, gdy używasz wyrażeń:
Możesz jednak napisać opakowanie w ten sposób:
(Zwróć uwagę na operator splat tutaj (
...
))I używaj tego w ten sposób podczas definiowania funkcji:
Lub tak:
źródło
return
,undefined
lubnull
do końca mojej funkcji. Jednak dodawanienull
wydaje mi się z jakiegoś powodu niewłaściwe. Czy mam rację, zakładając, że jest to najgorszy wybór z całej trójki?undfined
na końcu.return
Wydaje się, że użycie pustej instrukcji nie zwraca nic lepszego niż pozostawienie znakuundefined
na końcu funkcji, więc pustareturn
wydaje się być lepszą opcją.fun(arguments...)
lepiej zadzwonićfun.apply(this, arguments)
.Tak, z a
return
jako ostatnim wierszem funkcji.Na przykład,
Jeśli chcesz zobaczyć, do czego skompilowana jest kawa, wypróbuj http://bit.ly/1enKdRl . (W moim przykładzie użyłem reduxu coffeescript)
źródło
Po prostu coś fajnego (opcjonalne)
Function.prototype
sama w sobie jest funkcją, która zawsze nic nie zwraca. Możesz użyć funkcji Compose, aby przesłać swoją zwracaną wartość do tej czarnej dziury, a skomponowana funkcja nigdy niczego nie zwróci.źródło
źródło
Wygląda na to, że funkcje w CoffeeScript zawsze muszą coś zwracać, nawet
null
. W C maszvoid
jako typ zwracany.->
, pusta funkcja, kompiluje się do(function() {})
, więc jest to jedyna funkcja, która nic nie zwraca.źródło
return;
działa w C, JavaScript i CoffeeScript, aby zwrócić wartość void.