将数组中的所有值作为参数传递给函数

Ran*_*all 16 javascript arrays function parameter-passing

我有一系列值:

['a', 'b', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)

我需要将这些作为参数传递给函数:

window.myFunction('a', 'b', 'c', 'd');
Run Code Online (Sandbox Code Playgroud)

如果我可以将数组/对象传递给函数,这会更容易,但函数是由其他人编写的或者已经存在而且我无法更改它们 - 它们需要作为单独的参数传递,这是我需要解决的问题.

传递的值的数量不一致.它可能是一个,可能是100个.

再次,我不能影响功能.它们就是这样,我总会收到一系列值传递给它们.

Blu*_*ies 25

使用.applyFunction对象的方法.

window.myFunction.apply(window, ['a','b','c','d']);
Run Code Online (Sandbox Code Playgroud)

.apply方法调用您正在调用的函数,但允许您设置函数的this值(第一个参数),并允许您使用Array(第二个参数)设置其参数.

所以这里我们保留windowthis值,我们将Array作为单独的参数传递.Array成员将作为单独的参数传递,就好像你已经这样做了:

window.myFunction('a','b','c','d');
Run Code Online (Sandbox Code Playgroud)


haz*_*erd 5

尝试

window.myFunction.apply(window, ['a', 'b', 'c', 'd']);
Run Code Online (Sandbox Code Playgroud)