是否可以在不使用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
VIANumber 3
,而不会影响其使用方式。即。没有Array
。
这可能与OCD
有关,但使用数组看起来很讨厌。
我尝试过什么吗? Nope ,没有什么我能想到的,我可以尝试......我能尝试什么?我搜索过.....
答案 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);
这个例子非常有用,如果你不想其余的参数,并且不想保留第一个用于内部使用,如此
var test = function( name ) {
// Do something with name
something.apply(null, Array.prototype.slice.call(arguments, 1));
};