【问题标题】:function with function argument带函数参数的函数
【发布时间】:2019-02-02 14:28:04
【问题描述】:

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

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

function do(arg) {
  arg();
}

do(arg);

但我想在上面放多个函数,但不是恒定的,有时可以是1个函数,有时是2个函数或更多,有什么办法可以解决吗?还是我开始搜索的关键字?我已经在互联网上搜索过,但找不到我想要的。

【问题讨论】:

  • 根据您要完成的任务,管道可能会有所帮助。或者你可以只传入一个函数数组作为参数。有关用例的更多信息会有所帮助。

标签: javascript jquery function arguments


【解决方案1】:
function doFn(){    
   for(var i = 0; i < arguments.length; i++) arguments[i]();
}

一行 ES6:

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

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

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-01-04
        • 2016-11-13
        • 1970-01-01
        • 2014-12-02
        • 2013-07-18
        • 1970-01-01
        • 2011-08-07
        相关资源
        最近更新 更多