function outerFun(arg1, arg2, arg3){
function innerFun(arg1, arg2){
//do something
}
var innerArgs = Array.prototype.slice.call(arguments, 1);
innerFun.apply(null, innerArgs);
}
正如您所看到的,我正在尝试使用不同函数的已修改参数数组调用函数。我能想到的唯一方法就是使用apply()方法并传递切片数组。我的问题是,有不同的方法吗?如果没有那么我可以将null传递给apply()还是被认为是不好的做法?
答案 0 :(得分:1)
我的问题是,有不同的方法吗?
不,apply()
是JavaScript中唯一能够运行带有数组作为参数的函数的方法。但是,您仍然可以使用实际参数并使用函数:
function outerFunc(arg1, arg2, arg3){
/* ... */
innerFun(arg2, arg3);
/* ... */
}
如果没有,那么我可以将null传递给apply()还是被认为是不好的做法?
你可以,而且这不算坏事。该函数的行为就像在全局上下文中使用它一样。这也使您可以在带有多个参数的函数上使用数组。
另见: