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;
        }
    }

 

posted @ 2018-10-10 16:20  yuan权  阅读(1375)  评论(0编辑  收藏  举报