JS---arguments不定参
我们一般称使用arguments为可变参或不定参,采用arguments的函数其参数个数是可变的。
arguments本质是一个数组,数组内存储的内容就是我们传入的的参数
举个例子:
//写一个累加求和的函数 function sum(){ var result=0; for(var i=0;i<arguments.length;i++){ result+=arguments[i]; } return result; } console.log(sum(2,3,4));//9 console.log(sum(1,10,100,1000));//1111
接下来,我们再看一个css函数的例子。
假设,它的形式为:css(oDiv,样式),其作用为获取样式值。
它的形式为:css(oDiv,样式,样式值)其作用为设置样式。
参数个数不同,实现的功能不同,那么我们可以利用arguments的长度来判断其功能。
function css(){ if(arguments.length==2){// 获取样式值 return arguments[0].style[arguments[1]]; }else if(arguments.length==3){//设置样式值 arguments[0].style[arguments[1]]=arguments[2]; } }
但是这样的可读性又很差,实际上,我们依旧可以对不定参函数的参数进行命名,从而提高代码可读性:
function css(obj,name,value){ if(arguments.length==2){ return obj.style[name]; }else if(arguments.length==3){ obj.style[name]=value; } }