【JS】【函数重载】

来源:互联网 发布:阿里云公网ip访问不了 编辑:程序博客网 时间:2024/06/07 10:56

java方法重载:
- 通过创建多个方法来实现,特点:1.相同方法名;2.形参不同;
JS函数重载:
- 通过创建一个方法来实现,特点:判断形参个数或类型,来设置不同处理方式
JS函数特点:
- 不限制形参个数和类型,多余形参则无视,缺少形参则用undefined代替

var dowork=function(pram1,pram2){      return pram1+','+pram2;}var res1=dowork('Armo');//Armo,undefinedvar res2=dowork('Armo','Armo2','Armo3');//Armo,Armo2

-出现多个函数名相同的函数,以最后一个为准,前面无效

var dowork=function(pram1,pram2){  //该方法无效      return pram1+','+pram2;}var dowork=function(pram1){  //该方法有效    return pram1;}var res1=dowork('Armo');//Armovar res2=dowork('Armo','Armo2');//Armo

arguments

-是一个伪数组对象,可以用argument[i]来访问给函数传递的参数
-argument.length表示传入的形参个数.

  • 个数不同的重载
var dowork=function(){        if(arguments.length==1){          return 'hi!'+arguments[0]      }else{          var str='hi!';          for(var i in arguments){             str+=arguments[i];          }          return str;      }}var res1=dowork('Armo');//hi!Armovar res2=dowork('Armo','Armo2');//hi!ArmoArmo2
  • 类型不同的重载
var dowork=function(pram){      if(pram instanceof String|| typeof pram=='string'){return '字符串'}     else if(pram instanceof Date){return '时间'}    //由于 typeof (时间对象/数组对象) ==object 不用写     else if(pram instanceof Array){return '数组'}     else if(pram instanceof Number|| typeof pram=='number'){return '数字'}     else if(pram instanceof Function|| typeof pram=='function'){return '函数'}}var res1=dowork('Armo');//字符串var res2=dowork(1);//数字var res3=dowork(new Date());//时间var res4=dowork([1,2,3]);//数组var res5=dowork(function(){});//函数
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 三氧化二铁化学式 糖化学式 氧化锂化学式 氯化物化学式 硝酸铝的化学式 浓盐酸化学式 铝土矿化学式 银化学式 碳酸根离子化学式 氢氧化铁的化学式 醋化学式 碱石灰的化学式 碳酸盐化学式 氧化亚铁的化学式 锰酸化学式 苯环化学式 活性炭化学式 氯化镁的化学式 油的化学式 净水剂化学式 化学式编辑器 钙离子化学式 石油醚化学式 硫酸氢钠化学式 醋的化学式 磷酸盐化学式 三氧化硫的化学式 稀盐酸的化学式 硫酸盐化学式 银的化学式 氢氧化铝的化学式 氟化铵化学式 方程式怎么解 方程式驾校 数学方程式 方程式题目 方程式计算 四氧化三铁的化学式 磷酸二氢钾的化学式 碳酸氢根离子化学式 三氧化二铁的化学式