Soy nuevo en CoffeeScript (y bastante experiencia con JS también, así que lo siento si esto es ingenuo) y yo estaba tratando de crear una clase de la siguiente manera:CoffeeScript Miembros de la Clase
class Test
a: []
make: ->
@a.push ['A', 'B', 'C']
getdata: ->
output = ""
for i in @a
output += i
output
b = new Test
b.make()
alert(b.getdata())
c = new Test
c.make()
alert(c.getdata())
La salida que recibo es: "A, B, C" "A, B, C, A, B, C"
A pesar de crear una nueva instancia de 'Prueba'; la matriz se anexa y no se borra. ¿Qué estoy haciendo mal aquí? ¿Inicializo incorrectamente la variable miembro?
Debería observar cómo funcionan los prototipos y observar el código generado por JavaScript. Veo mucho de este error en coffeescript (incluso en tutoriales/libros de cocina). La regla que uso es definir solo las funciones y las propiedades estáticas en los miembros de la clase (defino propiedades de instancia en el constructor con la sintaxis @member). Y sí, es algo confuso dado el uso del coffeescript de la clase de palabra clave. – Guillaume86
nota al margen: 'getdata: -> @ a.join ('')' – tokland
Gracias Guillaume86 y tokland. Aprendí mucho de esto. – Anoop