如何在js里被动传入可变参数,不是主动取arguments

fredsuvn 发布于 2016/09/20 21:44
阅读 731
收藏 0

比如

var func0 = function(a0){

}

var func1 = function(a0, a1){

}

var func2 = function(a0, a1, a3){

}

我现在获得了一个参数数组,并且我也知道了这是func1的参数:

var params = [arg0, arg1];

但是我并不能直接在代码里写:func1(arg0, arg1);因为func0,funct1,func2都是不暴露的。

那么我现在要如何将arg0和arg1传递给func1?有没有类似java中的反射方式?


加载中
0
吴笑笑
function func1(params) {var arg1 = params[0];var arg2 = params[1];}这个意思?
吴笑笑
回复 @fredsuvn : 我能想到的话那也只能使用eval方法来执行了。或者自己实现一套函数注册调用的机制
f
fredsuvn
不,看 http://stackoverflow.com/questions/39596271/in-javascript-how-to-pass-variable-arguments-without-using-arguments
0
某刀
某刀

问题没能完全看懂……“被动传入可变参数”,意思是指将某不定长度数组作为某 func 的参数使用么……

如果是这个问题,对于调用而言是很简单的:

var func = function(){
  var args = Array.prototype.slice.call(arguments);
  console.log(args);  //执行函数要实现可变参数,如果不用 ES6,还是只能用arguments
}

//通过 apply,以数组传入任意参数
func.apply(this, [1,2,3]);



x
xiaor2
真是会者不难啊
0
wei2011
wei2011

试试这样:

func1.apply(this,params);



x
xiaor2
高手!
0
jiuker
jiuker
argument.length
返回顶部
顶部