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 delete操作符应用实例
Jan 13 Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
Jun 20 Javascript
Extjs单独定义各组件的实例代码
Jun 25 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
Oct 24 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
Jan 14 Javascript
深入理解Webpack 中路径的配置
Jun 17 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
Jul 14 Javascript
基于JavaScript实现每日签到打卡轨迹功能
Nov 29 Javascript
JS中使用new Option()实现时间联动效果
Dec 10 Javascript
Vue 自定义指令功能完整实例
Sep 17 Javascript
使用JavaScrip模拟实现仿京东搜索框功能
Oct 16 Javascript
JavaScript 装逼指南(js另类写法)
May 10 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 curl模拟浏览器采集阿里巴巴的实现代码
2011/04/20 PHP
php广告加载类用法实例
2014/09/23 PHP
给ECShop添加最新评论
2015/01/07 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
2016/03/31 PHP
thinkphp框架下404页面设置 仅三步
2016/05/14 PHP
简单实现PHP留言板功能
2016/12/21 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
Jquery Change与bind事件代码
2011/09/29 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
jQuery的css() 方法使用指南
2015/05/03 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
微信小程序左右滑动切换页面详解及实例代码
2017/02/28 Javascript
jQuery选择器之表单元素选择器详解
2017/09/19 jQuery
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
2017/12/15 Javascript
vue将对象新增的属性添加到检测序列的方法
2018/02/24 Javascript
vue-cli3 热更新配置操作
2020/09/18 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
Python脚本实现集群检测和管理功能
2015/03/06 Python
Python连接数据库学习之DB-API详解
2017/02/07 Python
python交互式图形编程实例(二)
2017/11/17 Python
python matlibplot绘制3D图形
2018/07/02 Python
python调用百度语音识别实现大音频文件语音识别功能
2018/08/30 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
详解python播放音频的三种方法
2019/09/23 Python
解决pyshp UnicodeDecodeError的问题
2019/12/06 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
美体小铺奥地利官方网站:The Body Shop奥地利
2019/04/11 全球购物
为什么要使用servlet
2016/01/17 面试题
外语系大学生自荐信范文
2014/03/01 职场文书
班级口号大全
2014/06/09 职场文书
医院节能减排方案
2014/06/13 职场文书
三严三实对照检查材料思想汇报
2014/09/28 职场文书
幼儿园小班家长评语
2014/12/30 职场文书
储备店长岗位职责
2015/04/14 职场文书
幼儿园开学家长寄语(2016秋季)
2015/12/03 职场文书