arguments就是一个包含传入的参数的数组对象

栗子一:

function sum(){
  var result=0;
  for(var i=0;i<arguments.length;i++){
    result += arguments[i];
  }return result;
}

alert(sum(1,2,3,4,5));

css函数

原代码:

function css(){
  if(arguments.length==2){//获取
    //return arguments[0].style[arguments[1]];//undefined因为style只能取行间样式
    //return arguments[0].currentStyle.arguments[1];
      if(arguments[0].currentStyle){//做兼容性判断:判断特性比判断浏览器版本更高效
      //IE
        return arguments[0].currentStyle[arguments[1]];//currentStyle为计算后的样式或默认值(如font-size)
    } else {
      //ff/chrome
        return getComputedStyle(arguments[0])[arguments[1]];//getComputedStyle为计算后的样式或默认值(如font-size)

    }
  }else if(arguments.length==3){//设置
      arguments[0].style[arguments[1]]=value;
  }
}
window.onload=function(){
  var obtn = document.getElementById('btn1');
  var odiv = document.getElementById('div1');

  obtn.onclick=function(){
    css(odiv,'background','#999');
    alert(css(odiv,'width'));
  }
}

 

增强可读性后的代码:

function css(obj,attr,value){
  if(arguments.length==2){//获取
    //return arguments[0].style[arguments[1]];//undefined因为style只能取行间样式
    //return arguments[0].currentStyle.arguments[1];
    if(obj.currentStyle){//做兼容性判断:判断特性比判断浏览器版本更高效
      //IE
      return obj.currentStyle[attr];//currentStyle为计算后的样式或默认值(如font-size)
    } else {
      //ff/chrome
      return getComputedStyle(obj)[attr];//getComputedStyle为计算后的样式或默认值(如font-size)

    }
  }else if(arguments.length==3){//设置
    obj.style[attr]=value;
  }
}

posted on 2013-12-13 21:03  狂流  阅读(357)  评论(0编辑  收藏  举报