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: =>
# ...