JS模拟实现方法重载示例


Posted in Javascript onAugust 03, 2016

本文实例讲述了JS模拟实现方法重载。分享给大家供大家参考,具体如下:

在JS方法中,不能像C#方法能实现重载,但是我们可以通过js中的arguments来实现js方法的重载。

下面给出html实例:

<html>
<head>
<title>JS方法的重载</title>
<script>
function testFun1(arm1){
  /// <summary>
  /// JS重载测试被调用方法1
  /// </summary>
  /// <param name="arm1"></param>
  alert(arm1);
}
function testFun2(arm1,arm2){
  /// <summary>
  /// JS重载测试被调用方法2
  /// </summary>
  /// <param name="arm1"></param>
  /// <param name="arm2"></param>
  alert(arm1+','+arm2);
}
function testFun3(arm1,arm2,arm3){
  /// <summary>
  /// JS重载测试被调用方法3
  /// </summary>
  /// <param name="arm1"></param>
  /// <param name="arm2"></param>
  /// <param name="arm3"></param>
  alert(arm1+','+arm2+','+arm3);
}
function testFun4(arm1,arm2,arm3,arm4){
  /// <summary>
  /// JS重载测试被调用方法4
  /// </summary>
  /// <param name="arm1"></param>
  /// <param name="arm2"></param>
  /// <param name="arm3"></param>
  /// <param name="arm4"></param>
  alert(arm1+','+arm2+','+arm3+','+arm4);
}
function testFun(arm1,arm2,arm3,arm4){
  /// <summary>
  /// JS重载测试方法
  /// </summary>
  /// <param name="arm1"></param>
  /// <param name="arm2"></param>
  /// <param name="arm3"></param>
  /// <param name="arm4"></param>
  if(arguments.length==1){
     alert('我是JS的重载方法,该方法的参数一共有'+arguments.length+'个。\n参数1:'+arguments[0]);
     //这里既是执行重载的方法
     testFun1(arm1);
  }
  else if(arguments.length==2){
     alert('我是JS的重载方法,该方法的参数一共有'+arguments.length+'个。\n参数1:'+arguments[0]+'\n参数2:'+arguments[1]);
     //这里既是执行重载的方法
     testFun2(arm1,arm2);
  }
  else if(arguments.length==3){
     alert('我是JS的重载方法,该方法的参数一共有'+arguments.length+'个。\n参数1:'+arguments[0]+'\n参数2:'+arguments[1]+'\n参数3:'+arguments[2]);
     //这里既是执行重载的方法
     testFun3(arm1,arm2,arm3);
  }
  else if(arguments.length==4){
     alert('我是JS的重载方法,该方法的参数一共有'+arguments.length+'个。\n参数1:'+arguments[0]+'\n参数2:'+arguments[1]+'\n参数3:'+arguments[2]+'\n参数4:'+arguments[3]);
     //这里既是执行重载的方法
     testFun4(arm1,arm2,arm3,arm4);
  }
  //多个参数以此类推
}
//初始化执行的方法
window.onload=function(){
  testFun(1,2,3);
}
</script>
</head>
<body>
  JS方法的重载
</body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
Aug 24 Javascript
jQuery:节点(插入,复制,替换,删除)操作
Mar 04 Javascript
页面图片浮动左右滑动效果的简单实现案例
Feb 10 Javascript
jquery.qtip提示信息插件用法简单实例
Jun 17 Javascript
Bootstrap DateTime Picker日历控件简单应用
Mar 25 Javascript
Vue-cli中为单独页面设置背景色的实现方法
Feb 11 Javascript
vue-cli3.0+element-ui上传组件el-upload的使用
Dec 03 Javascript
JS事件流与事件处理程序实例分析
Aug 16 Javascript
vue+导航锚点联动-滚动监听和点击平滑滚动跳转实例
Nov 13 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
Feb 27 Javascript
超详细小程序定位地图模块全系列开发教学
Nov 24 Javascript
ES6 十大特性简介
Dec 09 Javascript
jQuery数组处理函数整理
Aug 03 #Javascript
功能强大的Bootstrap组件(结合js)
Aug 03 #Javascript
AngularJS基础 ng-submit 指令简单示例
Aug 03 #Javascript
一个简单的JavaScript Map实例(分享)
Aug 03 #Javascript
AngularJS教程 ng-style 指令简单示例
Aug 03 #Javascript
js判断数组key是否存在(不用循环)的简单实例
Aug 03 #Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
Aug 03 #Javascript
You might like
php画图实例
2014/11/05 PHP
浅谈PHP中类和对象的相关函数
2017/04/26 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
jQuery 对象中的类数组操作
2009/04/27 Javascript
关于Javascript模块化和命名空间管理的问题说明
2010/12/06 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
深入理解javascript作用域和闭包
2014/09/23 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
JavaScript中创建字典对象(dictionary)实例
2015/03/31 Javascript
深入讲解AngularJS中的自定义指令的使用
2015/06/18 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
三种Webpack打包方式(小结)
2018/09/19 Javascript
详解Vue实战指南之依赖注入(provide/inject)
2018/11/13 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
独立部署小程序基于nodejs的服务器过程详解
2019/06/24 NodeJs
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
2019/12/01 Javascript
[06:16]DOTA2守卫传承者——职业选手谈心路历程
2015/02/26 DOTA
[57:22]完美世界DOTA2联赛PWL S2 FTD vs PXG 第二场 11.27
2020/12/01 DOTA
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
解决python的空格和tab混淆而报错的问题
2021/02/26 Python
美国摩托车头盔、零件、齿轮及配件商店:Cycle Gear
2019/06/12 全球购物
土木工程应届生求职信
2013/10/31 职场文书
行政监察建议书
2014/05/19 职场文书
师范大学生求职信
2014/06/13 职场文书
红领巾广播站广播稿(3篇)
2014/09/20 职场文书
幼儿园2014年度工作总结
2014/11/10 职场文书
2015年元旦标语大全
2014/12/09 职场文书
建筑工程材料员岗位职责
2015/04/11 职场文书
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android