【问题标题】:JavaScript pass variable number of arguments from function to function [duplicate]JavaScript将可变数量的参数从函数传递到函数[重复]
【发布时间】:2015-09-26 15:47:03
【问题描述】:

我知道这个问题很难理解。

我正在使用绘图库,它需要“点列表”来绘制多边形。只是,这个列表只是函数的参数。 (传递一个数组什么都不做……)

所以,我正在寻找一种能够从另一个函数调用此函数的方法,该函数具有可变编号或 args。可能是 5,或 6,或 238754,代码会自己计算出来。

这可以从数组中完成吗?

非常感谢。

【问题讨论】:

  • 您可以在参数中使用 json 或数组。这样你就可以传递不同的信息
  • 你的意思是你想传递一个数组而不是一堆参数?检查apply

标签: javascript list arguments


【解决方案1】:

.apply() 函数完全符合您的要求:它允许您使用数组作为参数列表。

someFunction.apply(thisRef, someArray)

使函数以someArray[0] 作为第一个参数,someArray[1] 作为第二个参数,以此类推。 .apply() 的第一个参数是在函数调用中用于 this 的值,所以你在那里使用什么完全取决于 someFunction 通常期望什么。

.apply() 函数位于函数原型上,因此可以通过对任何函数的引用来使用它。

【讨论】:

    【解决方案2】:

    要将变量从数组传递给函数,您可以使用Function.prototype.apply

    var args = [1,2,3]
    
    function do_stuff(a, b, c) {
    ...
    }
    
    do_stuff.apply(thisValue, args)
    

    【讨论】:

      【解决方案3】:

      您可以将任意数量的参数传递给 JS 函数。但是,您必须通过函数定义本身的迭代来处理它们

      function myFunc()
      {
      for(var i=0;i<arguments.length;i++)
      console.log(arguments[i]);
      }
      
      myFunc(5,3,4,1,8);
      

      输出:

      5

      3

      4

      1

      8

      【讨论】:

        猜你喜欢
        • 2020-10-30
        • 2017-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-24
        • 1970-01-01
        • 2012-11-13
        相关资源
        最近更新 更多