如何在javascript中添加函数的参数
How can you add to the arguments of a function in javascript
在下面的代码中,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"的属性,该属性是传递给函数的参数数组。您不必更改代码中的任何内容,它应该可以工作。你试过运行它吗?
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- AngularJS:我可以跳过函数参数回调吗
- 为什么不'我们在javascript中使用函数参数的数据类型
- 使用闭包共享构造函数参数
- 函数参数的值错误
- 当一个重要的构造函数参数丢失时应该发生什么
- 阻止ReSharper将JavaScript函数参数放到新行中
- 根据函数参数将CSS值存储在var中,然后对其进行操作
- 使构造函数参数具有ES6类方法的特权
- 当客户端将两个按钮的javascript函数参数修改为相同时,SQL/PHP会更新多行
- Windows.Networking.EndpointPair构造函数参数
- 是否可以使用Sinon.JS检查函数参数绑定是否正确
- 大括号中的Javascript函数参数
- jQuery 无法使用 AJAX 调用访问函数内部的函数参数
- 将JSON字符串转换为函数参数
- eval()读取函数参数有多糟糕
- Javascript不能在一个命令中使用函数参数
- 函数参数在内部不可见,返回新的Promise(函数(resolve,reject).传递给被promise化的函数的
- ES6类构造函数参数
- 是否可以在javascript函数参数列表中调用多个函数