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 相关文章推荐
JavaScript的目的分析
Jan 05 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
Sep 13 Javascript
JQuery操作单选按钮以及复选按钮示例
Sep 23 Javascript
JS正则验证邮箱的格式详细介绍
Nov 19 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
Feb 05 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
Sep 02 Javascript
微信jssdk在iframe页面失效问题的解决措施
Mar 03 Javascript
vue.js+boostrap项目实践(案例详解)
Sep 21 Javascript
javascript 定时器工作原理分析
Dec 03 Javascript
jQuery实现获取选中复选框的值实例详解
Jun 28 jQuery
微信小程序如何自定义table组件
Jun 29 Javascript
Vue插件之滑动验证码用法详解
Apr 05 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
1982年日本摄影师镜头下的中国孩子 那无忧无虑的童年
2020/03/12 杂记
PHP 作用域解析运算符(::)
2010/07/27 PHP
Smarty中调用FCKeditor的方法
2014/10/27 PHP
php并发加锁示例
2016/10/17 PHP
一个javascript图片阅览组件
2010/11/09 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
浅谈JSON中stringify 函数、toJosn函数和parse函数
2015/01/26 Javascript
基于Javascript实现弹出页面效果
2016/01/01 Javascript
简述Matlab中size()函数的用法
2016/03/20 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
2016/04/05 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
2016/12/07 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
关于Vue Router中路由守卫的应用及在全局导航守卫中检查元字段的方法
2018/12/09 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
小程序新版订阅消息模板消息
2019/12/31 Javascript
Webpack中SplitChunksPlugin 配置参数详解
2020/03/24 Javascript
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
python实现简单神经网络算法
2018/03/10 Python
Python Grid使用和布局详解
2018/06/30 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
python matplotlib 绘图 和 dpi对应关系详解
2020/03/14 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
Probikekit欧盟:在线公路自行车专家
2019/07/12 全球购物
澳大利亚网上买书:Angus & Robertson
2019/07/21 全球购物
linux下进程间通信的方式
2013/01/23 面试题
生物医学工程专业学生求职信范文分享
2013/12/14 职场文书
一年级学生期末评语
2014/04/21 职场文书
公安机关正风肃纪剖析材料
2014/10/10 职场文书
2014年电信员工工作总结
2014/12/19 职场文书