我想调用一个函数使用数组作为参数:
const x = ['p0', 'p1', 'p2'];
call_me(x[0], x[1], x[2]); // I don't like it
function call_me (param0, param1, param2 ) {
// ...
}
是否有更好的方法将x的内容传递给call_me()?
我想调用一个函数使用数组作为参数:
const x = ['p0', 'p1', 'p2'];
call_me(x[0], x[1], x[2]); // I don't like it
function call_me (param0, param1, param2 ) {
// ...
}
是否有更好的方法将x的内容传递给call_me()?
当前回答
在ES6标准中有一个新的扩展运算符…这就是它的作用。
call_me(...x)
除IE外,所有主流浏览器都支持。
展开操作符可以做许多其他有用的事情,链接的文档在这方面做得非常好。
其他回答
const args = ['p0', 'p1', 'p2'];
call_me.apply(this, args);
请参阅MDN文档中的Function.prototype.apply()。
如果环境支持ECMAScript 6,你可以使用spread参数:
call_me(...args);
为什么不传递整个数组并在函数中根据需要处理它呢?
var x = [ 'p0', 'p1', 'p2' ];
call_me(x);
function call_me(params) {
for (i=0; i<params.length; i++) {
alert(params[i])
}
}
在ES6标准中有一个新的扩展运算符…这就是它的作用。
call_me(...x)
除IE外,所有主流浏览器都支持。
展开操作符可以做许多其他有用的事情,链接的文档在这方面做得非常好。
您可以使用扩展语法
例如:
函数打印(…inpu) { console.log(…inpu) } Var arry = ['p0','p1','p2'] 打印(…进行)
链接如下:modzilla传播语法参考文档
假设call_me是一个全局函数,因此不需要设置此值。
var x = ['p0', 'p1', 'p2'];
call_me.apply(null, x);