将参数转发给另一种方法

时间:2016-09-12 15:00:19

标签: jquery coffeescript

jQuery的方法on有不同的签名:

# Signature 1
$('.container').on 'click', -> ...
# Signature 2
$('.container').on 'click', 'button', -> ...

我正在类中构建一个方法,我想使用正确的签名将其参数转发到on方法

obj = new MyObject $('.container')

# Uses signature 1
obj.on 'mouseenter', -> ...
# Uses signature 2
obj.on 'mouseleave', 'button', -> ...

到目前为止我建的仅使用第一个签名。

class MyObject
    constructor: (@el) ->
    on: (event, callbacks) => @el.on event, callbacks

我如何修改我的课程,以便它可以同时使用这两个签名?

1 个答案:

答案 0 :(得分:-1)

你可以通过使用'Splats'实现这一点:

class MyObject
    constructor: (@el) ->
    on: (events..., last) => @el.on event, last for event in events

这一种方法实际上会同时涵盖两种情况。