在函数.concat()中,我可以向它传递任意数量的参数。
我了解C++中的函数重载,但我不知道如何在JavaScript中实现具有未知参数数量的函数。
如何在函数中实现任意数量的参数?
发布于 2011-07-09 12:40:39
在javascript中,您将使用名为" arguments“的内置参数,它是传递给函数的所有参数的数组。您可以使用arguments.length以及数组参数、arguments1等中的每个值来获取它的长度。每个函数都有一个可以使用的内置变量。
例如,连接传递给它的所有字符串的函数。
function concatAll() {
var str;
for (var i = 0 ; i < arguments.length; i++) {
str += arguments[i];
}
return(str);
}
var f = concatAll("abc", "def", "ghi"); // "abcdefghi"发布于 2011-07-09 12:41:07
您可以使用arguments对象来完成此操作。请参阅此处的示例和文档:https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments
发布于 2011-07-09 12:41:10
就像这样-
function f()
{
var i;
for(i=0; i<arguments.length; i++)
{
alert( (i+1) + "th argument: " + arguments[i]);
}
}javascript中的所有函数都有一个名为arguments的内置参数,它是一个包含传递给函数的所有函数参数的数组。只需迭代此数组,您将能够访问函数的所有参数。
举个例子,一旦我写了一个函数,用于在某些特定字段不为空的情况下启用/禁用某些按钮。我是这样写这个函数的-
function toggleButton() // I used jquery inside this function
{
var i;
var last = arguments.length-1;
for(i=0; i<last; i++)
{
if( $.trim($(arguments[i]).val()) === "" )
return false;
}
$(arguments[last]).toggle();
return true;
}并像这样调用这个函数-
toggleButton("#idOfFirstField", "#idOfSecondField", "#idOfButtonToToggle");或者像这样-
toggleButton("#idOfFirstField", "#idOfSecondField", "#idOfThirdField", "#idOfButtonToToggle");因此,在这两种情况下,我都将可变数量的字段in传递给函数,并检查这些字段是否为空。如果它们都包含一些值,则切换按钮的可见性。
https://stackoverflow.com/questions/6632749
复制相似问题