如何在javascript中添加函数的参数

How can you add to the arguments of a function in javascript

本文关键字:函数 参数 添加 javascript      更新时间:2023-09-26

在下面的代码中,errHandlerBasic()如何调用errHandlerPlus(),将收到的所有参数errHandlerBasic()传递给它+一个额外的参数?

function errHandlerBasic()
{
   //Something like...
   errHandlerPlus(arguments, "additional string param");
}
function errHandlerPlus()
{
   //...
}

它看起来不一定很干净,但你可以做到这一点:

function errHandler() {
  errHandlerPlus.apply(this, [].slice.call(arguments).concat('more', 'values'));
}

由于arguments不是一个真正的数组,而是从Object继承的,因此我们必须进行一些finaling操作才能访问javascript的原生数组方法。

请参阅这个jsfiddle示例。

errHandlerPlus.apply(this, Array.prototype.concat.call(null, arguments, ["additional string param"]));

Javascript中的函数实际上是对象。因此,Javascript中的所有函数都有一个名为"arguments"的属性,该属性是传递给函数的参数数组。您不必更改代码中的任何内容,它应该可以工作。你试过运行它吗?