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 处理 URL 的两个函数代码
Aug 13 Javascript
改进版通过Json对象实现深复制的方法
Oct 24 Javascript
jQuery.buildFragment使用方法及思路分析
Jan 07 Javascript
利用js 进行输入框自动匹配字符的小例子
Jun 29 Javascript
jQuery之字体大小的设置方法
Feb 27 Javascript
javascript正则表达式使用replace()替换手机号的方法
Jan 19 Javascript
jquery实现平滑的二级下拉菜单效果
Aug 26 Javascript
浅谈JavaScript的全局变量与局部变量
Jun 10 Javascript
jQuery Ajax传值到Servlet出现乱码问题的解决方法
Oct 09 Javascript
vue数据初始化initState的实例详解
Apr 11 Javascript
微信小程序返回上一级页面的实现代码
Jun 19 Javascript
js实现磁性吸附的示例
Oct 26 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
div li的多行多列 无刷新分页示例代码
2013/10/16 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
Yii配置文件用法详解
2014/12/04 PHP
php header函数的常用http头设置
2015/06/25 PHP
PHP实现websocket通信的方法示例
2018/08/28 PHP
jQuery 如何先创建、再修改、后添加DOM元素
2014/05/20 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
2014/05/23 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
基于vue.js实现图片轮播效果
2016/12/01 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
2016/12/22 Javascript
node.js操作mongodb简单示例分享
2017/05/25 Javascript
基于JavaScript实现选项卡效果
2017/07/21 Javascript
js使用html2canvas实现屏幕截取的示例代码
2017/08/28 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
js保留两位小数方法总结
2018/01/31 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
对layer弹出框中icon数字参数的说明介绍
2019/09/04 Javascript
vue实现图片懒加载的方法分析
2020/02/05 Javascript
python使用三角迭代计算圆周率PI的方法
2015/03/20 Python
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
python字典多键值及重复键值的使用方法(详解)
2016/10/31 Python
Python 通过pip安装Django详细介绍
2017/04/28 Python
Python3实现获取图片文字里中文的方法分析
2018/12/13 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
万宝龙英国官网:Montblanc手表、书写工具、皮革和珠宝
2018/10/16 全球购物
机电一体化专业推荐信
2013/12/03 职场文书
工程资料员岗位职责
2014/03/10 职场文书
市场部业务员岗位职责
2014/04/02 职场文书
企业文明单位申报材料
2014/05/16 职场文书
爱护公共设施的标语
2014/06/24 职场文书
团党委领导干部党的群众路线教育实践活动个人对照检查材料思想汇
2014/10/05 职场文书
公司开会通知
2015/04/20 职场文书
婚姻出轨保证书
2015/05/08 职场文书
分享python函数常见关键字
2022/04/26 Python