2011-08-15 10 views
5

no estoy realmente seguro de por qué no tengo acceso a la variable @date (this.date) desde el contexto de la función anónima definido en la FQ()CoffeeScript/Javascript ámbito de las variables

class C 
    constructor:() -> 
    @date = new Date() 

    f:() -> 
    $(document).keydown((e) -> 
     alert(@date) 
    ) 
Podría

alguien comenta sobre eso?

Respuesta

9

Esto sucede porque dentro del controlador de eventos keydown, el valor this no se referirá a su objeto, sino que se referirá al elemento DOM.

Para ello, puede utilizar => (el fat arrow), que se unirá el valor del manejador this al padre this:

class C 
    constructor:() -> 
    @date = new Date() 

    f:() -> 
    $(document).keydown((e) => 
     alert(@date) 
    ) 
Cuestiones relacionadas