JavaScript 利用arguments对象实现函数重载

如果在ECMAScript中定义了两个相同名字的函数,那么后定义的函数则覆盖先定义的函数。例:
function add(num){
return num + 10;
}
function add(num) {
return num + 20;
}
var result=add(10);
alert(result); //结果为30

那么,如何利用arguments对象实现函数重载呢?
首先,arguments对象是什么?
arguments对象是类数组,可以使用方括号语法访问它的每一个元素(即第一个元素是arguments[0]…以此类推),通过访问arguments对象的 length属性可以获知有多少个参数(实参)传递给了函数;它的值永远与对应命名参数(形参)的值保持同步,但形参与实参的内存空间并不会重叠,因为arguments对象的长度是由传入的参数个数决定的,而不是由定义函数时的命名参数的个数决定的。
接下来,arguments对象怎样实现重载?
例:
function add(){
if(arguments.length == 1){
alert(arguments[0] + 10);
}else if(arguments.length == 2){
alert(arguments[0] + arguments[1]);
}
}
add(10); //结果为20
add(10,30); //结果为40

arguments对象通过检查传入函数中参数的类型和个数,并作出不同的反应,来实现方法的重载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值