javascript - 如何将所有参数作为集合传递给另一个函数而不是作为单个参数?

标签 javascript

我有一个函数可以接受任意数量和类型的参数,因此没有定义特定的参数。该函数应该调用另一个传递所有参数的函数。

问题是我可以传递“参数”以包含所有参数,但在这种情况下,它将像单个参数一样工作,而不是我们期望参数的工作方式。

一个例子:

主要功能:

function handleCall() {
   // let's call a sub-function
   // and pass all arguments (my question is how this is handled the right way)
   function callSubFunction( arguments );
}

function callSubfunction( userid, customerid, param) {
   // passed arguments are now 
   alert( 'userid = ' + userid );

   // this will not work, you have to use arguments[2]
   alert( param );
  }

The example call:

handleCall( 1029, 232, 'param01' );

使用上述方法,所有参数都将作为伪数组存储在“userid”中,并且可以访问项目,例如参数[2]但不使用参数名称“param”。

在 ColdFusion 中,此类问题的解决方案是参数“argumentCollection”,这样您就可以传递存储在结构中的参数,而无需将其转换为包含所有键/值的类型结构的单个参数。

如何使用 JavaScript 实现相同的效果?

最佳答案

如果您想对 spread syntax 执行相同的操作,您可以使用以下内容:

function handleCall(...args) {
    callSubFunction(...args);
}

关于javascript - 如何将所有参数作为集合传递给另一个函数而不是作为单个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4706236/

相关文章:

javascript - 更改 div 元素的背景颜色循环淡入淡出

javascript - Titanium mobile - 未捕获错误 : no such table

javascript - 使用 Mocha 测试 ES 2015 模块

javascript - MVC 枚举列表使用 Angular JS 在下拉列表中绑定(bind)

javascript - Angular 中的 TypeScript/JavaScript

javascript - 未捕获的类型错误 : Cannot read property 'geocode' of undefined

javascript - 为什么javascript `for`循环会快速静音/取消静音视频

javascript - 如何重用和覆盖继承的javascript函数

javascript - 打开本地文件与使用运行本地服务器

javascript - import 和 require 一起使用