Javascript:转发函数调用的参数数量可变
问题描述:
我认为我需要类似ruby的splat *
这里。Javascript:转发函数调用的参数数量可变
function foo() {
var result = '';
for (var i = 0; i < arguments.length; i++) {
result += arguments[i];
}
return result;
}
function bar() {
return foo(arguments) // this line doesn't work as I expect
}
bar(1, 2, 3);
我想这回"123"
,而是我得到"[object Arguments]"
。我想,这是有道理的。它传递的是表示参数的对象,而不是单独的参数。
那么,我该如何简单地将任意数量的参数转发给另一个接受任意数量参数的函数呢?
答
试试这个return foo.apply(this,arguments)
。你也可以使用Array.prototype.slice.apply(arguments).join('')
作为你的foo功能。