当前位置: 首页 > news >正文

第204天:js---重载和多态

一、根据arguments个数实现重载

js本身不支持重载,所以只能通过其他方式实现,arguments检测传参的个数,然后再执行不同的方式

 1 function add() {
 2         var sum = 0 ;
 3         for ( var i = 0 ; i < arguments.length; i ++ ) {
 4             sum += arguments[i];
 5         }
 6         return sum;
 7     }
 8     alert(add());
 9     alert(add( 1 , 2 ));
10     alert(add( 1 , 2 , 3 ));

二、检测数据类型实现重载

根据传参的类型,调用不同的方法,用typeof进行检测

 1 //检测数据类型实现重载 typeof
 2     var MyClass=function(){
 3         var AddNum=function(a,b){
 4             return a+b;
 5         }
 6         var AddString=function(a,b){
 7             return "I am here"+a+b;
 8         }
 9         this.Add=function(a,b){
10             if(typeof(a)=="number")
11                 return AddNum(a,b);
12             else
13                 return AddString(a,b);
14         }
15     }
16 
17     function add(a,b){
18         return a+b;
19     }
20 
21     function add(a,b){
22         return "I am here"+a+b;
23     }
24 
25     var MyObj = new MyClass();
26     var X = MyObj.Add(5,6);
27     var Y = MyObj.Add("A","FFFFFF");
28     alert(X); //结果:11
29     alert(Y); //结果:I am hereAFFFFFF

三、jquery中的重载

如果传递2个参数表示获取值,传递三个参数表示赋值

 1 function attr(id, key, value){
 2         var dom =  $$.$id(id);
 3         var args = arguments.length;
 4         if(args ===3 ){
 5             dom.setAttribute(key, value);
 6         }else{
 7             return dom.getAttribute(key);
 8         }
 9     }
10 attr(1,2);
11 attr(1,2,3);

 

转载于:https://www.cnblogs.com/le220/p/8588258.html

相关文章:

  • 【资源共享】5G AP分析
  • webpack4.0入门以及使用
  • Node总结
  • Unity中的平移 缩放 旋转
  • android开发学习 ------- 【转】 android中的单例模式 (详解)
  • python学习笔记(数据类型)
  • P1073 最优贸易
  • 080.mycat和mycopy
  • [模板] LIS
  • 用户管理 useradd userdel usermod
  • canvas填充样式
  • 公钥加密—私钥签名
  • 网络应用框架Netty快速入门
  • Redux 中间件分析
  • c# yield关键字原理详解
  • 分享的文章《人生如棋》
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • ES2017异步函数现已正式可用
  • ESLint简单操作
  • GraphQL学习过程应该是这样的
  • Iterator 和 for...of 循环
  • JS专题之继承
  • JS字符串转数字方法总结
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • PermissionScope Swift4 兼容问题
  • redis学习笔记(三):列表、集合、有序集合
  • spring security oauth2 password授权模式
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 简单实现一个textarea自适应高度
  • 理清楚Vue的结构
  • 排序(1):冒泡排序
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 推荐一个React的管理后台框架
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 《天龙八部3D》Unity技术方案揭秘
  • elasticsearch-head插件安装
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​configparser --- 配置文件解析器​
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #NOIP 2014# day.2 T2 寻找道路
  • #pragma multi_compile #pragma shader_feature
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (13):Silverlight 2 数据与通信之WebRequest
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (arch)linux 转换文件编码格式
  • (C语言)fread与fwrite详解
  • (Java)【深基9.例1】选举学生会
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (简单) HDU 2612 Find a way,BFS。