js函数的重载

什么是重载?

重载是指方法名相同 而参数不同(QwQ) Java c#什么的不都这么定义的么?


如果在Js中这样写会出现什么结果呢? 

<script type="text/javascript">
    function add1(a,b){
        return a+b;
    }

    function add1(a,b,c){
        return a+b+c;
    }


    function add1(a,b,c,d){
        return a+b+c+d;
    }

    alert(add1(1,2));

    alert(add1(1,2,3));

    alert(add1(1,2,3,4));

</script>

T A T ! 结果如下

    alert(add1(1,2));//NaN

    alert(add1(1,2,3));//NaN

    alert(add1(1,2,3,4));//10
这是为啥呢···

在Js中 会有一个就近原则 (QwQ怎么说……)

第一个alert(add1(1,2))这个调用的function add1(a,b,c,d){}这个方法(QwQ 调用最近的方法)因为参数个数不够 所以没有运算 返回的NaN 其他的同样


So Js中没有重载 但是 可以模拟重载


****传递的参数保存在arguments数组中

QwQ  记住arguments这个数组

下面进行模拟Js的重载

<script type="text/javascript>

    function add1(){

        if(arguments.length == 2){
            return arguments[0]+arguments[1];
        }else if(arguments.length == 3){
            return arguments[0]+arguments[1]+arguments[2];
        }  else if(arguments.length == 4){
            return arguments[0]+arguments[1]+arguments[2]+arguments[3];    
        }else{
            return 0; 
        }

    }

</script>


Js中没有重载

利用arguments数组的长度判断执行哪个方法 模拟重载效果

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值