带有动态参数列表和参数数组的Javascript函数

带有动态参数列表和参数数组的Javascript函数,javascript,Javascript,我需要用javaScript调用一个函数 service.call(row.operation, args.arg1, args.arg2, args.arg3,...,argN ) 我有一组随机长度的参数。如何将此数组作为参数列表传递给函数 更新 我无法更改调用方法签名。”“调用”方法是自定义的,不是标准的。使用而不是Call。它希望参数以数组的形式出现 var args = [ args.arg1, args.arg2, args.arg3 ]; service.apply(row.ope

我需要用javaScript调用一个函数

service.call(row.operation, args.arg1, args.arg2, args.arg3,...,argN )
我有一组随机长度的参数。如何将此数组作为参数列表传递给函数

更新

无法更改调用方法签名。”“调用”方法是自定义的,不是标准的。

使用而不是
Call
。它希望参数以数组的形式出现

var args = [ args.arg1, args.arg2, args.arg3 ];
service.apply(row.operation, args);

重新编辑:

我无法更改调用方法签名。”“调用”方法是自定义的,不是标准的

首先:买一本JavaScript:The Financial Guide(这是一本很厚的书),并用它对在
服务
对象上命名
调用
方法的人进行一些解释

然后…使用
apply
调用
call
方法

var args = [row.operation, args.arg1, args.arg2, args.arg3 ];
service.call.apply(service.call, args);

您可以使用spread操作符,它非常适合于不同数量的参数。请查看以下详细说明:


让它成为一个array@ProEvilz-制作什么样的阵列?他们说他们已经有了一个数组。@Quentin
args.arg1,args.arg2,args.arg3
不是数组。我的理解是,^这是动态参数的一个示例。只需放置一个数组,它就可以容纳数不清的
args.arg1、args.arg2、args.arg3
@proeviz-这个代码示例就是他们当前调用函数的方式。他们说他们有一个数组中的参数。问题是如何将参数数组传递给函数(函数不需要一个数组参数,但需要单独的参数)。这不是我的函数,调用不是标准方法。我不能更改它的签名。@avalon---
call
是一种标准方法@avalon-如果它是一个奇怪的函数,其中
call
被覆盖,那么答案仍然是使用
apply
service.call.apply(service.call,args)
为什么要将
row.operation
作为第一个参数?@Andy-
call
的第一个参数是
这个值。
apply
的第一个参数是
this
值。当调整代码以使用
apply
以允许数组定义的参数数量可变时,
参数不会更改。因此,该值与问题原始代码中使用的值相同。