Jak to napisać w coffeescript?
f = (function(){
// something
})();
Dzięki za wszelkie wskazówki :)
javascript
javascript-framework
coffeescript
user537339
źródło
źródło
f = do -> console.log x
-> console.log 'this runs right away'
dof
, a następnie uruchamia go; yours uruchamia funkcję, a następnie przypisuje jej wynikf
, tak jak w oryginalnym pytaniu. (Chociaż w przypadkuconsole.log
wartości zwracanej jest zawszeundefined
.){f: do -> // something}
do
Umożliwia także przekazywanie argumentów do funkcji. Aby przekazać1
i2
jako parametryx
iy
, napiszdo (x = 1, y = 2) ->
. (Dokumentacja dotycząca tej funkcji zaginęła , ale problem związany z wprowadzeniem funkcji ma kilka przykładów).Jeśli chcesz „aliasować” argumenty przekazywane do funkcji samowywołującej się w CoffeeScript, powiedzmy, że to właśnie próbujesz osiągnąć:
(function ( global, doc ) { // your code in local scope goes here })( window, document );
Więc
do (window, document) ->
nie pozwolę ci tego zrobić. Droga do zrobienia to parens:(( global, doc ) -> # your code here )( window, document )
źródło
do (global=window, doc=document) ->
w kawie jest śmiesznie łatwo:
do ->
wróci
(function() {})();
źródło
Można również połączyć
do
słowo kluczowe z domyślnymi parametrami funkcji, aby zapoczątkować rekurencyjne „funkcje samoczynne” z wartością początkową. Przykład:do recursivelyPrint = (a=0) -> console.log a setTimeout (-> recursivelyPrint a + 1), 1000
źródło
Spróbuj użyć
do ($ = jQuery) ->
źródło
do -> #your stuff here
Stworzy to samowykonujące się zamknięcie, które jest przydatne do określania zakresu.
źródło
Przepraszam, rozwiązałem to:
f = ( () -> "something" )()
źródło
do
kluczowe ma pewne ograniczenia, które powodują, że czasami konieczne jest użycie podejścia w stylu JS (patrz wydanie 960 );do
został dodany tylko ze względu na przypadek użycia pętli z zamknięciami.Powinno być
f = () -> # do something
źródło