我有一组值:
['a', 'b', 'c', 'd']
我需要将这些作为参数传递给函数:
window.myFunction('a', 'b', 'c', 'd');
如果我可以将数组/对象传递给函数,这会更容易,但是这些函数是由其他人编写的或者已经存在并且我无法更改它们 - 它们需要作为单独的参数传递,这就是我需要解决。
传递的值数量不一致。可能是一个,也可能是100个。
同样,我不能影响功能。它们就是它们的样子,我将始终收到一组要传递给它们的值。
最佳答案
使用 Function 对象的 .apply
方法。
window.myFunction.apply(window, ['a','b','c','d']);
.apply
方法调用您正在调用的函数,但允许您设置函数的 this
值(第一个参数)并允许您使用数组(第二个参数)。
所以这里我们将 window
保留为 this
值,并将 Array 作为单独的参数传递。 Array 成员将被分发,就好像它们作为单独的参数传递一样,所以就好像您已经这样做了:
window.myFunction('a','b','c','d');
关于javascript - 将数组中的所有值作为参数传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19570629/