通过函数将多个参数传递给函数

时间:2013-07-29 09:14:07

标签: javascript

是否可以在不使用Array的情况下将多个(未知)参数传递给函数?

看看这个示例代码。

var test = function( /* Arguments */ ) { // Number 3
    something( /* All Arguments Here */ );
};


var something = function( first, last, age ) { // Number 2
    alert( first + last + age );
};


test('John', 'Smith', 50); // Number 1 

所以问题......

  

是否可以将参数从Number 1传递到Number 2 VIA Number 3,而不会影响其使用方式。即。没有Array

这可能与OCD有关,但使用数组看起来很讨厌。

我尝试过什么吗? Nope ,没有什么我能想到的,我可以尝试......我能尝试什么?我搜索过.....

2 个答案:

答案 0 :(得分:4)

var test = function() { // Number 3
    something.apply(null, arguments);
};


var something = function( first, last, age ) { // Number 2
    alert( first + last + age );
};


test('John', 'Smith', 50); // Number 1 

答案 1 :(得分:2)

我找到了答案,感谢Blade-something

您可以使用Array.prototype.slice.call(arguments)

var test = function( /* Arguments */ ) {
    something.apply(null, Array.prototype.slice.call(arguments));
};


var something = function( first, last, age ) {
    alert( first + last + age );
};


test('John', 'Smith', 50);

Demo

这个例子非常有用,如果你不想其余的参数,并且不想保留第一个用于内部使用,如此

var test = function( name ) {
    // Do something with name
    something.apply(null, Array.prototype.slice.call(arguments, 1));
};