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 09 Javascript
js判断上传文件类型判断FileUpload文件类型代码
May 20 Javascript
Javascript 学习笔记之 对象篇(二) : 原型对象
Jun 24 Javascript
JavaScript中textRange对象使用方法小结
Mar 24 Javascript
JavaScript实现MIPS乘法模拟的方法
Apr 17 Javascript
jquery实现的简单二级菜单效果代码
Sep 22 Javascript
使用jQuery处理AJAX请求的基础学习教程
May 10 Javascript
遍历js中对象的属性和值的实例
Nov 21 Javascript
Vue.js父与子组件之间传参示例
Feb 28 Javascript
mpvue微信小程序的接口请求fly全局拦截代码实例
Nov 13 Javascript
vue新建项目并配置标准路由过程解析
Dec 09 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
Feb 08 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 调试工具Debug Tools
2011/04/30 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
2013/07/22 PHP
PHP实现路由映射到指定控制器
2016/08/13 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
准确获得页面、窗口高度及宽度的JS
2006/11/26 Javascript
JavaScript CSS修改学习第二章 样式
2010/02/19 Javascript
浅谈javascript的数据类型检测
2010/07/10 Javascript
基于jquery的跨域调用文件
2010/11/19 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
JS数组的遍历方式for循环与for...in
2014/07/31 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
2017/01/23 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
AngularJS日程表案例详解
2017/08/15 Javascript
vue组件学习教程
2017/09/09 Javascript
最实用的JS数组函数整理
2017/12/05 Javascript
python解析xml文件实例分享
2013/12/04 Python
Python获取单个程序CPU使用情况趋势图
2015/03/10 Python
10种检测Python程序运行时间、CPU和内存占用的方法
2015/04/01 Python
python传递参数方式小结
2015/04/17 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
Python3 无重复字符的最长子串的实现
2019/10/08 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
2020/02/20 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
python利用递归方法实现求集合的幂集
2020/09/07 Python
美国购买舞会礼服网站:Couture Candy
2019/12/29 全球购物
Sql面试题
2013/03/20 面试题
经理秘书岗位职责
2013/11/14 职场文书
人事助理岗位职责
2013/11/18 职场文书
读书演讲主持词
2014/03/18 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
幼儿园小班教师随笔
2015/08/14 职场文书
演讲开头怎么书写?
2019/08/06 职场文书
python 用递归实现通用爬虫解析器
2021/04/16 Python