如何发送数组作为多个参数?

时间:2012-07-17 23:36:03

标签: javascript

在Javascript中,我有简单的test code

function x(a, b) {
  alert(a);
  alert(b);
}

var c = [1,2];
x(c);

将参数c发送到函数x()作为一个参数,分配给ab保持未定义: - /

如何将数组作为多个参数发送到函数,而不是作为一个数组?

2 个答案:

答案 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])