javascript模仿重载
高洛峰
高洛峰 2017-04-11 12:13:37
[JavaScript讨论组]

今天看了下javascript高级编程这本书,书中提到可以使用传如不同的参数数量和类型实现java的方法重载,但我试了好像不行,都会被后面的function给覆盖。

function a(num1,num2){
          alert("djang");
}

function a(num0){
            alert("diang2");
}

         a("aaa"); //结果是djang2
         a("aaa","bbb"); //结果是djang2

这样也不行、、、、、

function a(){
             if(arguments.length == 2){
                  alert("djang");
             }
             
         }

         function a(){
            if(arguments.length == 1){
              alert("diang2");
            } 
         }

         a("aaa","bb");
         a("aaa");
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
伊谢尔伦

你可能看的不仔细,不应该是实现重载,而是模拟重载。高程中多次强调JavaScript中函数没有重载。

但是我们可以在函数内部,通过判断arguments.length ,以及判断传入的参数类型,执行不同的代码来模拟重载

function a(){
  if(arguments.length===1){
    //执行某些代码
  }else if(arguments.length===2){
    //执行另一些代码
  }

}
大家讲道理

上面的回答提好的,题主可以去看看jquery的源码,$()这个入口函数有9种不同参数的”重载“

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号