2012-04-12 9 views
5

No estoy seguro de cómo escribir esto en CS. tal vez algunos1 pueden ayudar:CoffeeScript, pase varios parámetros, incluida una función anónima

FB.getLoginStatus(function (response) {} , {scope : scope}) 

gracias.

+0

ive intentado nada ... y estoy todo lo alto del hombre de ideas ..: P – d4rklit3

+0

http://stackoverflow.com/questions/6720402/in-coffeescript-how-can -tu-make-a-function-call-with-anonymous-functions-as-pa –

+0

@ d4rklit3 si fuera usted, me retractaría de coffeescript por un tiempo y trataría de obtener una buena comprensión de javascript primero. –

Respuesta

9

Se podría escribir algo así ... CoffeeScript

FB.getLoginStatus(
    (response) -> 
    doSomething() 
    {scope: scope}) 

que convertiría a JavaScript como tal ...

FB.getLoginStatus(function(response) { 
    return doSomething(); 
}, { 
    scope: scope 
}); 
+2

Eso es un formato horrible. –

+9

Lamento que mi muestra rápida no cumpla con sus requisitos para ser perfecto. – scottheckel

+1

Estás perdonado. 'FB.getLoginStatus receiveLogin, {scope}' –

4
FB.getLoginStatus(function(response) {}, { 
    scope: scope 
}); 

en JavaScript es:

FB.getLoginStatus(
    (response) -> 
    { scope } 
) 

en CoffeeScript.

Para responder a su pregunta sobre múltiples parámetros tienen además un vistazo a estos ejemplos:

$('.main li').hover(
    -> $(@).find('span').show() 
    -> $(@).find('span').hide() 
) 

En CoffeeScript es igual a:

$('.main li').hover(function() { 
    return $(this).find('span').show(); 
}, function() { 
    return $(this).find('span').hide(); 
}); 

en JavaScript.

Un ejemplo aún más simple en cuanto a manejo de múltiples parámetros (sin funciones anónimas) sería:

hello = (firstName, lastName) -> 
    console.log "Hello #{firstName} #{lastName}" 

hello "Coffee", "Script" 

en CoffeeScript compila a:

var hello; 

hello = function(firstName, lastName) { 
    return console.log("Hello " + firstName + " " + lastName); 
}; 

hello("Coffee", "Script"); 

en JavaScript.

0

Otra opción:

FB.getLoginStatus(((response) ->),{scope}) 
Cuestiones relacionadas