我有一个值数组:
['a', 'b', 'c', 'd']
我需要将它们作为参数传递给函数:
window.myFunction('a', 'b', 'c', 'd');
如果我可以将数组/对象传递到函数中,那么这会更容易,但这些函数是由其他人编写的或已经存在,我无法更改它们 - 它们需要作为单独的参数传递,这就是我需要解决的问题。
传递的值的数量不一致。可能是1个,也可能是100个。
再说一次,我不能影响功能。它们就是它们的样子,我总是会收到一组值传递给它们。
Use the .apply
Function 对象的方法。
window.myFunction.apply(window, ['a','b','c','d']);
The .apply
方法调用您正在调用的函数,但允许您设置该函数的this
value(第一个参数),并允许您使用数组(第二个参数)设置其参数。
所以我们在这里保留window
as the this
值,我们将数组作为单独的参数传递。数组成员将被分发,就像它们作为单独的参数传递一样,所以就好像您已经这样做了:
window.myFunction('a','b','c','d');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)