2015-09-10 88 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