繁体   English   中英

使用javascript将参数解析为函数调用

[英]destructure arguments into a function call with javascript

我有一个函数,它采用可变数量的参数,我在数组中有这些参数。 该函数不将数组作为参数。 我想要做的是将数组解构为函数调用的参数。 我不确定数组有多长,但我知道它将超过3。

var array = ['a', 'b', 'c', 'd', ...etc]
doit(arr[0], arr[1], arr[2], ...etc)

function doit( a, b, ...c){
  //do stuff
}

听起来你应该 array 扩展doit的调用中:

doit(...array);

请注意,这称为spread (或“spread语法”),它不是解构。 解构涉及创建新变量或分配给现有变量。

较旧的方法是使用apply

doit.apply(undefined, array);

一种方法是在任何javascript函数中使用特殊变量arguments 无论计数如何,您都可以访问所有参数。

 var arr1 = ['a', 'b', 'c', 'd', 'e', 'f']; var arr2 = ['A', 'B', 'C']; doit(arr1); // one argument: [a,b,c,d,e,f] doit(arr2); // one argument: [A,B,C] doit(arr1[0], arr2[1], 'anything', -3.1); // four arguments: a, B, 'anything', -3.1 function doit(){ for(var i=0; i<arguments.length; i++) { console.log("argument " + i + " is : " + arguments[i]); } } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM