js重载总结

js的函数重载
前几天在面试的时候,面试官问到了我,js的重载是什么?当时一脸懵逼,回来之后查阅资料,给大家分享一下。
js函数重载的定义,方法名相同,参数不同。
直接上代码:

			function add(a,b){
				var sum=a+b;
				alert(sum);
			}
			add(1,2);
			function add(a,b,c){
				var sum=a+b+c;
				alert(sum);
			}
			add(1,2,3);
		 观察结果,我们发现,第一个alert出来的是NaN,第二个alert出来的是6.第二个把第一个覆盖了!是不是js中没有重载,只有覆盖?在《javascript高级程序设计中》,也有说到我们的js是没有重载的。
		 根据重载的定义,我们发现参数不同,引用arguments来存放我们的参数是不是就可以了。
		
		 

 我们先来一个简单的重载
	function cz(){``
			switch(arguments.length){
				case 0:
					alert(0);
					break;
				case 1:
					alert(1);
					break;
				//有arguments.length-1个case在这里执行,我们就完成了重载
			}
		}

接下来在我们的add方法上改造一下来实现函数重载。

			function add(){
				if(arguments.length===3){
					alert(arguments[0]+arguments[1]+arguments[2]);
				}else if(arguments.length===1){
					alert(arguments[0]);
				}else if(arguments.length===2){
					alert(arguments[0]+arguments[1]);
				}else{
					alert(0)
				}			
			}
			add(1);
			add(1,2);
			add();

上述代码分别输出 1 3 0
在这里,我们就真正的利用arguments的特性实现了js的函数重载!!!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值