2015-08-25 63 views
1

我在javasciprt有通用函數。 它接受:其他func打電話,並params發送。 它看起來像:javascript:通過/接受params到func

function generic(func, funcArguments){ 
     //my Code... 
     func(funcArguments); 
    } 

想我稱之爲通用FUNC從FUNC下面名爲myFunc:

function myFunc(a, b){ 
     generic(foo, arguments);//argument will pass a and b, as js rules 
    } 


    function foo(a, b){ 
     ///my code 
    } 

結果是FOO函數的所有參數作爲一個實體傳遞到參數a。

這對我不好。 我需要它接受a進入a和b進入b。 但我不能簡單地發送它們,因爲每次我接受不同的params計數。

有什麼辦法可以實現這個邏輯嗎?

回答

2

你會需要調用該方法將apply(context, arguments)。然後參數將作爲參數數組的單獨成員提供,而不僅僅是一個參數。

function generic(func, funcArguments){ 
    func.apply(this, funcArguments); 
} 
+0

[DEMO](http://jsfiddle.net/dot4tfqg/) – blex

+0

是快速高效的性能像普通的通話功能?即它比簡單的函數調用更「重」嗎?關於通過 - 是否有辦法分別傳遞參數呢?對於不想通過所有參數的情況很重要 – user2783091

+0

雖然這已超出您的問題的範圍「是否有任何方法可以實現此邏輯?」,則應用和調用不會影響性能,並且如果您要修改你可以通過他們之前的論點。 –