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 相关文章推荐
静态的动态续篇之来点XML
Dec 23 Javascript
JavaScript获取GridView选择的行内容
Apr 14 Javascript
给Function做的OOP扩展
May 07 Javascript
js的hasownproperty使用示例
Mar 02 Javascript
js判断浏览器类型为ie6时不执行
Jun 15 Javascript
使用jquery+CSS实现控制打印样式
Dec 31 Javascript
浅谈jquery中delegate()与live()
Jun 22 Javascript
Vue表单demo v-model双向绑定问题
Jun 29 Javascript
微信小程序登录态和检验注册过没的app.js写法
May 22 Javascript
JS实现移动端双指缩放和旋转方法
Dec 13 Javascript
使用PreloadJS加载图片资源的基础方法详解
Feb 03 Javascript
JavaScript检测浏览器是否支持CSS变量代码实例
Apr 03 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
php基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
PHP比较运算符的详细介绍
2015/09/29 PHP
代码生成器 document.write()
2007/04/15 Javascript
20个非常棒的Jquery实用工具 国外文章
2010/01/01 Javascript
使用JavaScript检测Firefox浏览器是否启用了Firebug的代码
2010/12/28 Javascript
表格单元格交错着色实现思路及代码
2013/04/01 Javascript
浅析Javascript使用include/require
2013/11/13 Javascript
jquery iframe操作详细解析
2013/11/20 Javascript
学习JavaScript设计模式之迭代器模式
2016/01/19 Javascript
Bootstrap 源代码分析(未完待续)
2016/08/17 Javascript
JS正则子匹配实例分析
2016/12/22 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
2017/06/28 Javascript
详解微信小程序Radio选中样式切换
2017/07/06 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
vscode vue 文件模板的配置方法
2019/07/23 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
跟老齐学Python之用Python计算
2014/09/12 Python
详解Python使用simplejson模块解析JSON的方法
2016/03/24 Python
python读取与写入csv格式文件的示例代码
2017/12/16 Python
python批量设置多个Excel文件页眉页脚的脚本
2018/03/14 Python
Python简单读写Xls格式文档的方法示例
2018/08/17 Python
python输出电脑上所有的串口名的方法
2019/07/02 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
2019/09/20 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
澳大利亚电子产品购物网站:Dick Smith
2017/02/02 全球购物
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
电大会计学自我鉴定
2014/02/06 职场文书
迎国庆演讲稿
2014/09/15 职场文书
医生见习报告范文
2014/11/03 职场文书
优秀校长事迹材料
2014/12/24 职场文书
银行反洗钱宣传活动总结
2015/05/08 职场文书
医院合作意向书范本
2015/05/08 职场文书
山楂树之恋观后感
2015/06/11 职场文书
2015年科普工作总结
2015/07/23 职场文书
pytorch--之halfTensor的使用详解
2021/05/24 Python
分布式架构Redis中有哪些数据结构及底层实现原理
2022/03/13 Redis