带有函数参数的函数

时间:2018-08-28 03:27:51

标签: javascript jquery function arguments

我只是想找到一个关键字或解决方案,以便我可以进一步找到并解决自己的问题,因此,基本上,我想从一个函数参数中调用一个函数,就像这样。

var arg = function() {/*do something*/};

function do(arg) {
  arg();
}

do(arg);

但是我想在上面放多个函数,但不是常数,它有时可以是1个函数,或者有时是2个或更多函数,请问有什么解决方案吗?或我开始使用的关键字?我已经在互联网上搜索了,但是找不到想要的东西。

3 个答案:

答案 0 :(得分:2)

function doFn(){    
   for(var i = 0; i < arguments.length; i++) arguments[i]();
}

一行ES6:

  var doFn = (...args) => args.forEach(fn => fn());

PD:“ do”是保留字,您应该使用不同的变量名。

答案 1 :(得分:2)

您可以使用一些非常酷的新功能,称为rest参数。这是一个例子。

function callMultiple(...fn) {
 fn.forEach(fn => fn());
}

function FnOne() {
 console.log('function one called');
}

function FnTwo() {
 console.log('function two called');
}

callMultiple(FnOne, FnTwo);

现在callMultiple可以接受许多功能。 MDN reference

答案 2 :(得分:1)

您需要对do()函数进行以下操作:

function do(args) {    
    for (var i = 1; i <= args.length; i += 1) {
        args[i]();
    }
}

这可以解决您的问题。但是,您应该知道do是一个JavaScript关键字,因此应避免将其用作自己的变量或函数。

编辑:您必须包括要传递给函数的所有内容,因此您需要添加args参数。