Javascript 在CoffeeScript中,当尝试调用类中的方法(@_methodName)时,它返回未定义的

Javascript 在CoffeeScript中,当尝试调用类中的方法(@_methodName)时,它返回未定义的,javascript,coffeescript,underscore.js,Javascript,Coffeescript,Underscore.js,我试图在我的代码中使用函数,我正在传递类的一个方法作为第一个参数,但是,。

我试图在我的代码中使用函数,我正在传递类的一个方法作为第一个参数,但是,
告诉我,我正在传递一个
未定义的
参数,函数应该在哪里

class SomeClass

  click: _.debounce @_save, 600

  _save: =>
    # Save logic
另一方面,如果我这样做,它是有效的,但这个解决方案似乎有点丑陋

class SomeClass

  click: _.debounce ( -> 
    @_save()
  ), 600

  _save: =>
    # Save logic
当我检查这两个函数的生成JS源代码时,似乎这两个函数都可以正常工作,我不知道这里的CoffeeScript是否缺少一些内容。

CoffeeScript编译:

click: _.debounce @_save, 600
进入:

注意
\u save
方法是
SomeClass
的静态属性,即它不在原型上,因为在声明中
@
引用的是类本身,而不是它的实例

或者,您可以在构造函数中声明click函数:

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

这将确保每个实例都有一个取消公告的函数,而不是一个共享的函数。

我认为,您应该尝试以下方法:

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

  _save: =>
    # ...

如果我的类扩展了父类,如何调用父构造函数?@gpopoteur
class SomeClass
  constructor: ->
    @click = _.debounce @_save, 600

  _save: =>
    # ...