2011-08-08 16 views
24

¿Es posible llamar a un método desde el constructor en Coffeescript?
p.Llamar a un método desde el constructor en Coffeescript

class Animal 
    constructor: (@name) -> 
    move() 

    move: (meters) -> 
    alert @name + " moved #{meters}m." 

class Snake extends Animal 
    move: -> 
    alert "Slithering..." 
    super 5 

sam = new Snake "Sammy the Python" 

Esto está generando el siguiente mensaje de error "ReferenceError: movimiento no se define"

Respuesta

35

Es posible. Sin embargo, para referirse al método debe usar @move() o this.move(), el nombre move() en sí mismo no es suficiente.

3

Alerta Gotcha: si usted encuentra que @ o esto no se refiere a la nueva instancia en un constructor, compruebe que recordaste a utilizar la nueva palabra clave:

instance = new Class() 
NO

:

instance = Class() 

Esto me sorprendió y fue realmente frustrante. ¡Espero que esto ayude a alguien más!

Cuestiones relacionadas