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
我如何修改我的课程,以便它可以同时使用这两个签名?
答案 0 :(得分:-1)
你可以通过使用'Splats'实现这一点:
class MyObject
constructor: (@el) ->
on: (events..., last) => @el.on event, last for event in events
这一种方法实际上会同时涵盖两种情况。