如何在Coffeescript中将函数作为参数传递

时间:2013-02-24 04:05:02

标签: javascript jquery callback coffeescript

我是Coffeescript的新手,我希望传递一个函数作为参数,以便在动画完成时用作回调。现在,我的“回调”正在我的动画完成之前运行。

  closeItem: ($elem) ->
    @close($elem, @myCallback($elem))

  close: ($elem, callback) ->
    $elem.slideUp 300, (-> callback)

1 个答案:

答案 0 :(得分:4)

您的问题是,当您拨打close时,您正在呼叫您的功能。我们在这里重载术语,但您似乎想要“关闭”$elem变量以实现此目的。试试这个:

closeItem: ($elem) ->
    @close $elem, => @myCallback($elem)

close: ($elem, callback) ->
    $elem.slideUp 300, callback

请注意以下几点:

我们在调用=>时使用了胖箭@close。这会创建一个包含当前对象上下文的函数,以便它可以调用@callback然后关闭$elem,以便它可以传递给@myCallback

此外,在close函数本身中,您只需将回调传递给slideUp