在Javascript中,我有简单的test code:
function x(a, b) {
alert(a);
alert(b);
}
var c = [1,2];
x(c);
将参数c
发送到函数x()
作为一个参数,分配给a
和b
保持未定义: - /
如何将数组作为多个参数发送到函数,而不是作为一个数组?
答案 0 :(得分:17)
结帐apply
。
在您的情况下(因为您未在函数中使用this
),您只需将window
(或this
)作为“this”参数传递:
x.apply(this, [1, 2]);
示例: http://jsfiddle.net/MXNbK/2/
根据您关于将null
作为“this”参数传递的问题,请参阅链接文章中关于“this”参数的MDN评论:
请注意,这可能不是该方法看到的实际值:如果是 method是非严格模式代码中的函数,null和undefined将 被全局对象替换,原始值将是 装箱。
答案 1 :(得分:7)
或者,在使用ECMAScript 2015(或使用Babel转换器)的浏览器中,您可以使用新的传播运算符:
x(...[1, 2])