Como escrever isso em coffeescript?
f = (function(){
// something
})();
Obrigado por qualquer dica :)
javascript
javascript-framework
coffeescript
user537339
fonte
fonte
f = do -> console.log x
-> console.log 'this runs right away'
af
e a executa; o seu executa a função e, em seguida, atribui seu resultado af
, como na pergunta original. (Embora no caso deconsole.log
, o valor de retorno é sempre deundefined
qualquer maneira.){f: do -> // something}
do
também permite que você passe argumentos para a função. Para passar1
e2
como os parâmetrosx
ey
, escrevado (x = 1, y = 2) ->
. (A documentação para este recurso foi perdida , mas o problema em que o recurso foi introduzido tem alguns exemplos.)Se você deseja criar um "alias" para os argumentos passados para a função de auto-invocação no CoffeeScript, digamos que isto é o que você está tentando alcançar:
Então
do (window, document) ->
não vou deixar você fazer isso. O caminho a percorrer é com os parênteses:fonte
do (global=window, doc=document) ->
é ridículo fácil no café:
retornará
fonte
Você também pode combinar a
do
palavra-chave com os parâmetros de função padrão para propagar "funções de autoinicialização" recursivas com um valor inicial. Exemplo:fonte
tente usar
fonte
Isso criará um encerramento autoexecutável, útil para definição do escopo.
fonte
Desculpe, eu resolvi:
fonte
do
palavra-chave tem algumas limitações que às vezes tornam necessário usar a abordagem do estilo JS (consulte a edição 960 );do
foi realmente adicionado apenas por causa do caso de uso de loop com fechamentos.Deveria ser
fonte