JavaScript中的方法重载实例


Posted in Javascript onMarch 16, 2015

.NET里面的方法重载用着的确很方便,哪Javascript里面能不能也哪样做呢?

Javasciprt里面本生是没有方法重载的功能,以前很多人的做法可能是直接少传参数过去,然后在根据参数是否为 “undefined” 未定义来决定怎么处理,从而实现类似方法重载的功能。

例如:

var showMessage = function(name,value,id){

    if(id != ”undefined”){

        alert(name+value+id);

    }

    else if(value != ”undefined”){

        alert(name + value);

    }

    else{

        alert(name);

    }

}
showMessage(”哈哈”);

showMessage(”哈哈”,”??”);

showMessage(”哈哈”,”??”,124124);

今天在Ajaxian上面看到了一篇关于Javascript方法重载的写法,它是能过另外一个方法来实现的。

看一下这个代码:

// addMethod - By John Resig (MIT Licensed)

function addMethod(object, name, fn){

    var old = object[ name ];

    object[ name ] = function(){

        if ( fn.length == arguments.length ){

         return fn.apply( this, arguments );

     }

     else if ( typeof old == 'function' ){

      return old.apply( this, arguments );

  }

}

};
var UserInfo = function(){

    addMethod(this,”find”,function(){

        alert(”没有参数”);

    });
    addMethod(this,”find”,function(name){

        alert(”传入的参数是一个,叫 ”+name);

    });
    addMethod(this,”find”,function(name,value){

        alert(”传入了两个参数,一个叫 name=”+name+” 一个叫 value=”+value);

    });

};
var userinfo = new UserInfo();

userinfo.find();

userinfo.find('我是谁?');

userinfo.find('某某某','1512412514');

看,这样一来就简单了……
Javascript 相关文章推荐
JS数学函数Exp使用说明
Aug 09 Javascript
使用jQuery内容过滤选择器选择元素实例讲解
Apr 18 Javascript
$.each遍历对象、数组的属性值并进行处理
Jul 18 Javascript
jquery实现弹出层登录和全屏层注册特效
Aug 28 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
May 21 Javascript
原生js实现addclass,removeclass,toggleclasss实例
Nov 24 Javascript
JS对象创建的几种方式整理
Feb 28 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
May 30 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
Aug 16 Javascript
使用原生js封装的ajax实例(兼容jsonp)
Oct 12 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
Oct 26 Javascript
layer.open 按钮的点击事件关闭方法
Aug 17 Javascript
jquery中attr和prop的区别分析
Mar 16 #Javascript
JavaScript中扩展Array contains方法实例
Aug 23 #Javascript
JavaScript中消除闭包的一般方法介绍
Mar 16 #Javascript
jQuery实现的支持IE的html滑动条
Mar 16 #Javascript
JavaScript计算两个日期时间段内日期的方法
Mar 16 #Javascript
nw.js实现类似微信的聊天软件
Mar 16 #Javascript
JavaScript控制table某列不显示的方法
Mar 16 #Javascript
You might like
一个更简单的无限级分类菜单代码
2007/01/16 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
2020/04/23 PHP
在js中使用"with"语句中跨frame的变量引用问题
2007/03/08 Javascript
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
jQuery中事件与动画的总结分享
2016/05/24 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
2016/09/01 Javascript
基于Bootstrap仿淘宝分页控件实现代码
2016/11/07 Javascript
详解Javascript获取缓存和清除缓存API
2017/05/25 Javascript
element-ui使用导航栏跳转路由的用法详解
2018/08/22 Javascript
基于JS实现前端压缩上传图片的实例代码
2019/05/14 Javascript
JS原形与原型链深入详解
2020/05/09 Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
2020/07/18 Javascript
js实现拖拽元素选择和删除
2020/08/25 Javascript
python中多层嵌套列表的拆分方法
2018/07/02 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
python实现自动解数独小程序
2019/01/21 Python
python实现简易淘宝购物
2019/11/22 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
python3.8与pyinstaller冲突问题的快速解决方法
2020/01/16 Python
Python安装OpenCV的示例代码
2020/03/05 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
HTML5 Web 存储详解
2016/09/16 HTML / CSS
捷克体育用品购物网站:D-sport
2017/12/28 全球购物
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物
AP澳洲中文网:澳洲正品直邮,包税收件无忧
2019/07/12 全球购物
应届生污水处理求职信
2013/11/06 职场文书
毕业生简单求职信
2013/11/19 职场文书
电子工程专业毕业生求职信
2014/03/14 职场文书
2014年自愿离婚协议书范本
2014/09/25 职场文书
学校运动会广播稿
2014/10/11 职场文书
奖励通知
2015/04/22 职场文书
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python