2015-09-10 62 views
1

功能时,我有一个函数(我不能改变):调用可变参数与参数

trigger: (evtType, args...) -> 
    # ... find callback based on evtType 
    callback.apply(this, args) 

是否有调用它,仍然实现同样的结果比这更清洁的方式:

open: -> 
     @trigger.apply(@, ['beforeOpen'].concat Array::slice.call(arguments, 0)) 

回答

3

是的,图示也适用时calling a function

的CoffeeScript提供泼溅...,无论是对于函数定义和调用,使可变数量的参数更加可口。

您可以使用arguments...

open: -> 
    @trigger('beforeOpen', arguments...) 

CoffeeScript的将是转化为平时的apply/concat/slice丑为您服务。

+0

可爱的,这是在风格更多coffeescriptish,谢谢! – DHa