He tenido que aprender coffeescript un poco a la fuerza. Al final, siempre puedo ver su equivalencia con javascript, pero tengo una duda que involucra a ambos lenguajes.
Veo que existen muchas maneras de declarar/definir métodos de una clase(o función):
Código:
Y por si fuera poco, aparte también puedo agregar al prototype.class una_clase metodo_a: -> hacer_algo() metodo_b = -> hacer_algo() @metodo_c: -> hacer algo() @metodo_d = -> hacer_algo()
Cita:
Lo que podido constatar es lo siguiente:una_clase.otro_metodo = ->
otra_cosa()
otra_cosa()
1. Un @(osea this) en el espacio de la clase significa propiedad de la clase, algo asi como metodo o variable estático.
2. metodo_a sólo es visible dentro de los métodos de la clase o instancia.
3.Cambiar el prototipo cambia todas las instancias.
De ahí en fuera no entiendo bien cual es la diferencia entre un metodo_a y metodo_b. Si tengo variables miembro, qué es visible para qué.
Esto es bastante engorroso sobretodo cuando uno viene de lenguajes como C++ o python.
Espero me puedan aclarar.
Saludos