¿Cómo escribir esto en coffeescript?
f = (function(){
// something
})();
Gracias por los consejos :)
javascript
javascript-framework
coffeescript
usuario537339
fuente
fuente
f = do -> console.log x
-> console.log 'this runs right away'
af
, luego la ejecuta; el tuyo ejecuta la función y luego asigna su resultado af
, como en la pregunta original. (Aunque en el caso deconsole.log
, el valor de retorno es siempre deundefined
todos modos.){f: do -> // something}
do
también le permite pasar argumentos a la función. Para pasar1
y2
como los parámetrosx
yy
, escribirdo (x = 1, y = 2) ->
. (La documentación de esta función se ha perdido , pero el problema en el que se introdujo la función tiene algunos ejemplos).Si desea "alias" los argumentos pasados a la función autoinvocada en CoffeeScript, digamos que esto es lo que está tratando de lograr:
(function ( global, doc ) { // your code in local scope goes here })( window, document );
Entonces
do (window, document) ->
no te dejará hacer eso. El camino a seguir es con parens entonces:(( global, doc ) -> # your code here )( window, document )
fuente
do (global=window, doc=document) ->
es ridículamente fácil en el café:
do ->
volverá
(function() {})();
fuente
También puede combinar la
do
palabra clave con los parámetros de función predeterminados para generar "funciones de autoiniciación" recursivas con un valor inicial. Ejemplo:do recursivelyPrint = (a=0) -> console.log a setTimeout (-> recursivelyPrint a + 1), 1000
fuente
tratar de usar
do ($ = jQuery) ->
fuente
do -> #your stuff here
Esto creará un cierre autoejecutable, que es útil para establecer el alcance.
fuente
Disculpas, lo resolví:
f = ( () -> "something" )()
fuente
do
palabra clave tiene algunas limitaciones que hacen que sea necesario utilizar el enfoque de estilo JS en ocasiones (consulte el número 960 );do
en realidad solo se agregó debido al caso de uso de bucle con cierres.Debería ser
f = () -> # do something
fuente