我们平时在做前端开发涉及到一些Javascript时,可能会遇到参数不固定的Javascript函数,如:exp(a)、 exp(a,b),
需要说明的是函数名相同,但传入的参数不同,
那么我们可能会这样想:定义两个函数,一个只含一个函数,而另一个有两个函数,
但是,在 Javascript里面编写函数是不能同名的,那么我们该怎么办呢?下面就介绍一种方法。
比如我们要对两个数求和,我们可以封装一个如下的函数:
function sum(a,b){
return a+b;
}
但这是我们要对3个数求和呢?那这样
function sum(a,b,c){
return a+b+c;
}
但要对8个数求和或者更多呢?我们不可能一直这样写下去,所以我们需要一种能够处理参数个数不同的函数,
比如还拿求和来说,当我们传入两个参数时能够对两个数求和,当传入6个参数时能够对6个数求和,
因此这里就引入了变参函数。
在 JavaScript函数的内部,可以使用一个名为arguments的对象,其中包含了调用函数的时候,传递给该函数的所有参数,
arguments虽然不是数组,但我们可以把它做为数组来使用,当然也可以使用下标,argument[0]表示接受的第一个参数,
arguments[1]表示接受的第二 个参数,,,,,以此类推;另外,arguments对象有一个length属性,
可以用来代表参数的个数,用法就是arguments.length。
function sum(){
var result = 0;
console.log(arguments)
for(var i = 0;i<arguments.length;i++){
result += arguments[i];
}
return result;
}
alert(sum(20,90)); //110
alert(sum(20,90,6,6,6,4)); //132
需要说明的是函数名相同,但传入的参数不同,
那么我们可能会这样想:定义两个函数,一个只含一个函数,而另一个有两个函数,
gitHub地址:https://github.com/liYinFeng2/javaScript/blob/master/JavaScript%E5%88%86%E7%B1%BB/%E5%87%BD%E6%95%B0%E7%AF%87/000_Javascript%E5%8F%98%E5%8F%82%E5%87%BD%E6%95%B0.txt
但是,在 Javascript里面编写函数是不能同名的,那么我们该怎么办呢?下面就介绍一种方法。
比如我们要对两个数求和,我们可以封装一个如下的函数:
function sum(a,b){
return a+b;
}
但这是我们要对3个数求和呢?那这样
function sum(a,b,c){
return a+b+c;
}
但要对8个数求和或者更多呢?我们不可能一直这样写下去,所以我们需要一种能够处理参数个数不同的函数,
比如还拿求和来说,当我们传入两个参数时能够对两个数求和,当传入6个参数时能够对6个数求和,
因此这里就引入了变参函数。
在 JavaScript函数的内部,可以使用一个名为arguments的对象,其中包含了调用函数的时候,传递给该函数的所有参数,
arguments虽然不是数组,但我们可以把它做为数组来使用,当然也可以使用下标,argument[0]表示接受的第一个参数,
arguments[1]表示接受的第二 个参数,,,,,以此类推;另外,arguments对象有一个length属性,
可以用来代表参数的个数,用法就是arguments.length。
function sum(){
var result = 0;
console.log(arguments)
for(var i = 0;i<arguments.length;i++){
result += arguments[i];
}
return result;
}
alert(sum(20,90)); //110
alert(sum(20,90,6,6,6,4)); //132