在下面的代码中,errHandlerBasic()如何调用errHandlerPlus()传递errHandlerBasic()收到的所有参数+另外一个争论?
function errHandlerBasic()
{
//Something like...
errHandlerPlus(arguments, "additional string param");
}
function errHandlerPlus()
{
//...
}
答案 0 :(得分:3)
它看起来不一定很干净,但你可以做到这一点:
function errHandler() {
errHandlerPlus.apply(this, [].slice.call(arguments).concat('more', 'values'));
}
由于参数不是真正的数组,而是从Object继承,我们必须做一些重点才能访问javascript的本机数组方法。
有关示例,请参阅此jsfiddle。
答案 1 :(得分:2)
errHandlerPlus.apply(this, Array.prototype.concat.call(null, arguments, ["additional string param"]));
答案 2 :(得分:0)
Javascript中的函数实际上是对象。因此,Javascript中的所有函数都有一个名为“arguments”的属性,该属性是传递给函数的参数数组。您不必更改代码中的任何内容,它应该可以正常工作。你尝试过运行吗?