2015-08-25 83 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

虽然这已超出您的问题的范围“是否有任何方法可以实现此逻辑?”,则应用和调用不会影响性能,并且如果您要修改你可以通过他们之前的论点。 –