日期:2014-05-16  浏览次数:20411 次

能不能用个变量代替函数参数列表?
请教大虾们:
原函数
function x(a,b,c){
//--
}

能不能用一个y代替a,b,c
y要如何做才能向x传递了abc三个参数?
function x(y){
//-----
}


------解决方案--------------------
方法一:
var a = 1 , b = 2 , c = 3;
y = [a , b , c];
//传入一个数组
x(y);

写法二
var a = 1 , b = 2 , c = 3;
function x(){
    //用内置属性arguments
    alert(arguments);
}
x(a , b , c);
------解决方案--------------------
//JSON对象
function x(y){
//-----
alert(y.a+'\n'+y.b+'\n'+y.c);
}

x({a:'a',b:'b',c:'c'})

------解决方案--------------------
不清楚你产生这个需求的背景,如果普通的话只能这样来处理:

function x(a, b, c){
    console.log(a);
    console.log(b);
    console.log(c);
}

function y(z){
    console.log(z);
    var d = null,
        e = null;
    if(d = arguments[1]){
        console.log(d);
    }
    
    if(e = arguments[2]){
        console.log(e);
    }
}

x(1,2,3);
y(4,5,6);

------解决方案--------------------
js函数的参数列表本身就是个数组,所有参数都在arguments里
------解决方案--------------------
1楼的方法一  二楼的方法  都可以  ,就是 模式里常说的 Request-Response模式,把参数封装到一个对象里面 ,作为一个整体去做参数。