函数的参数

function.length

此函数校验参数个数

function __matchArgs__(fn) {
  return function(...args){
    if (args.length !== fn.length){
      throw RangeError('Arguments not match!');
    }
    return fn.apply(this,args);
  }
}

var add= __matchArgs__((a,b,c) => a+b+c );

console.log(add(1,2,3));

console.log(add(1,2));

可变参数与arguments

function add() {
  let args = Array.from(arguments);
  return args.reduce((a,b) => a+b);
}
console.log(add(1,23,1));

//JavaScript 函数设计中经常会让参数允许有不同的类型
function setStyle(el,property,value) {
  if (typeof el ==='string') {
    el = document.querySelector(el);
  }
  if (typeof property === 'object') {
    for (var key in property) {
      setStyle(el,key,property[key]);
    }
  }else{
    el.style[property] = value;
  }
}

console.log(setStyle.length);

setStyle('div',color,'red');

setStyle('div',{
  'fontSize':'32px',
  'backgroundColor':'white'
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容