精通Javascript 之 函数重载

重载是面向对象中常用的功能。虽然JS不直接支持函数重载,但是可以通过很多方式来实现函数重载。JS的每个函数都带有一个仅在这个函数范围内作用的变量称为参数argument,它是一个包含所有传给函数的参数的维数组,它并非真正意义上的数组,它不能被修改,但可以访问其中的元素及属性。

通过下面这个例子来直观的了解一下:

    <script type="text/javascript" language="javascript">
         //发送一条消息的函数
         function sendMessage(msg, obj) {
             //如果传入参数是两个,使用obj发送消息
             if (arguments.length == 2)
                 obj.handleMsg(msg);
             //如果没有传入参数,显示错误消息
             else if (arguments.length == 0)
                 alert("An error occured!");
             //如果传入参数是msg,显示消息
             else if (typeof (msg) == "string")
                 alert(msg);
             //如果传入参数是obj,使用obj发送消息
             else if(typeof(msg) == "object")
                 msg.handleMsg();
         }
 
         sendMessage("Hello, World!");
 
         sendMessage();
 
         sendMessage("How are you?", {
             handleMsg: function (msg) { 
                 alert("This is a custom message: " + msg);
             }
         });
 
         sendMessage({
             handleMsg: function () {
                 alert("This is a custom message");
             }
         }); 
     </script>


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值