En CoffeeScript cuando intenta llamar a un método (@_methodName) en una class, devuelve indefinido

Estoy tratando de usar la function de rebote de subrayado en mi código, y estoy pasando un método de mi class como el primer parámetro, pero _.debounce me está diciendo que estoy pasando un parámetro undefined donde debería estar la function.

 class SomeClass click: _.debounce @_save, 600 _save: => # Save logic 

Por otro lado, si lo hago así, funciona, pero esta solución parece algo fea.

 class SomeClass click: _.debounce ( -> @_save() ), 600 _save: => # Save logic 

Cuando verifico el origen JS generado de ambas funciones, parece que ambas deberían funcionar bien, no sé si aquí me falta algo de CoffeeScript.

CoffeeScript comstack:

 click: _.debounce @_save, 600 

dentro:

 SomeClass.prototype.click = _.debounce(SomeClass._save, 600); 

Observe cómo _save método es una propiedad estática de SomeClass , es decir, no está en el prototipo porque en su statement @ refiere a la class en sí, no a su instancia.

Alternativamente, puede declarar su function de clic en el constructor:

 constructor: -> @click = _.debounce @_save, 600 

Esto asegurará que tenga una function antirrebote por instancia, y no una compartida.

Creo que deberías probar algo como esto:

 class SomeClass constructor: -> @click = _.debounce @_save, 600 _save: => # ...