arguments可变参(不定参)实例应用。
arguments是一个数组,存的是一些参数。
在Jquery中有一个css()函数,css(oDiv 'width')为获取元素的宽;css(oDiv 'width' '200px')为设置宽度为200px。下面用javascript的arguments来实现这个功能。
1 function css(){ 2 3 if(arguments.length==2){ //如果数组的长度是2就是获取样式 4 5 return arguments[0].style[argements[1]]; //返回arguments数组的元素的属性值 css(oDiv 'width')oDiv是第一个不定参,所以用 arguments[0]表示;width第二个不定参,用arguments[1]表示 6 } 7 8 else{ 9 10 return arguments[0].style[argements[1]]=arguments[2]; //设置样式 css(oDiv 'width' '200px') oDiv是第一个不定参,所以用 arguments[0]表示;width第二个不定参,用arguments[1]表示;200px是第三个不定参,所以用 arguments[2]表示 11 } 12 13 };
由于用arguments[0] arguments[1] arguments[2]来表示数组里面的不定参会比较容易混乱,所以可以把这三个不定参设个名字(形参),用名字把arguments[0] arguments[1] arguments[2]替代掉,最后通过实参把值传过去。现把代码优化如下:
1 function css(obj,name,value){ 2 if(arguments.length==2){ 3 4 return obj.style[name]; 5 } 6 else{ 7 8 return obj.style[name]=value; 9 } 10 };
最调用css(oDiv,'width','500px');