javaScript core :之函数的重载

重载(overload)

WHAT:

           相同函数名,不同参数列表的多个函数,在调用时,可根据传入的参数不同,自动选择匹配的函数执行。

 WHY:

            减少API的数量,减轻调用者的负担

 WHEN:

             只要一项任务,可能根据传入参数的不同,执行不同的流程时。

 HOW:

        问题:js语法默认不支持重载,因为不允许多个同名函数同时存在!

         解决: arguments

         什么是: 函数调用时,自动创建的

                     保存所有传入函数的参数值的

               类数组对象(长的像数组的对象)

             vs 数组: 相同: 1. 下标; 2. .length; 3. 遍历

                           不同: 类型不同, API不通用

ex:

     function pay() {
            //arguments[  ].length
            if(arguments.length==0) {
                console.log("手机支付")
            }else if(arguments.length>=1){
                console.log(`现金支付${arguments[0]}元`)
            }else {
                console.log(`刷卡结账从${arguments[0]}扣款成功`)
            }
        }
        pay()//手机支付
        pay(100)//现金支付
        pay("6555 1234 566","123456")//刷卡结账

   何时使用arguments: 重载

   重载的缺点:不能见名知意

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值