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 相关文章推荐
对象的类型:本地对象(1)
Dec 29 Javascript
用JavaScript 处理 URL 的两个函数代码
Aug 13 Javascript
JQuery datepicker 使用方法
May 20 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
Oct 22 Javascript
jQuery实现“扫码阅读”功能
Jan 21 Javascript
angular简介和其特点介绍
Jan 29 Javascript
微信小程序搜索组件wxSearch实例详解
Jun 08 Javascript
微信小程序自定义toast的实现代码
Nov 16 Javascript
微信小程序结合mock.js实现后台模拟及调试
Mar 28 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
Jun 18 jQuery
JavaScript前端实现压缩图片功能
Mar 06 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
Dec 15 Vue.js
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
Php注入点构造代码
2008/06/14 PHP
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
用mysql触发器自动更新memcache的实现代码
2009/10/11 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
js 本地预览的简单实现方法
2014/02/18 Javascript
JS实现同时搜索百度和必应的方法
2015/01/27 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
2015/11/17 Javascript
基于jquery实现表格无刷新分页
2016/01/07 Javascript
javascript检查某个元素在数组中的索引值
2016/03/30 Javascript
浅析使用BootStrap TreeView插件实现灵活配置快递模板
2016/11/28 Javascript
JS 拦截全局ajax请求实例解析
2016/11/29 Javascript
详解Angular 4.x Injector
2017/05/04 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
Javascript获取某个月的天数
2018/05/30 Javascript
详解webpack之图片引入-增强的file-loader:url-loader
2018/10/08 Javascript
搭建基于express框架运行环境的方法步骤
2018/11/15 Javascript
详解微信小程序开发之formId使用(模板消息)
2019/08/27 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
vue通过v-html指令渲染的富文本无法修改样式的解决方案
2020/05/20 Javascript
js 获取扫码枪输入数据的方法
2020/06/10 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
2020/06/10 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
python如何控制进程或者线程的个数
2020/10/16 Python
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
倡议书格式模板
2014/05/13 职场文书
社区综治工作汇报
2014/10/27 职场文书
离婚协议书范本(通用篇)
2014/11/30 职场文书
2014工程部年度工作总结
2014/12/17 职场文书
党支部半年考察意见
2015/06/01 职场文书
详解Java实践之适配器模式
2021/06/18 Java/Android