第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);

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java3y

泛型就这么简单

17140
来自专栏用户2442861的专栏

深入理解java异常处理机制

http://blog.csdn.net/hguisu/article/details/6155636

9320
来自专栏代码世界

Python中下划线---完全解读

Python 用下划线作为变量前缀和后缀指定特殊变量 _xxx 不能用’from module import *’导入 __xxx__ 系统定义名字 __xxx...

391110
来自专栏AI研习社

最常见的 35 个 Python 面试题及答案(2018 版)

作为一个 Python 新手,你必须熟悉基础知识。在本文中我们将讨论一些 Python 面试的基础问题和高级问题以及答案,以帮助你完成面试。包括 Python ...

93130
来自专栏梧雨北辰的开发录

Swift学习:构造器(下)

本篇主要介绍Swift中构造器的一些特殊用法 一、可失败的构造器 顾名思义,这是用于我们构造过程可能失败情况的构造器。失败的原因可能是给构造器传入无效的参数值,...

28570
来自专栏java技术学习之道

Java异常详解及如何处理

28850
来自专栏智能算法

Python学习(八)---- 面向对象类之进阶

原文地址: https://blog.csdn.net/fgf00/article/details/52479307 编辑:智能算法,欢迎关注! 上期我们一起...

10930
来自专栏idba

Python的map函数

一 简介 Python 内置了很多非常有用的函数 比如map() ,reduce(),filter(),还有lambda。熟练应用这些函数可以在写python...

9320
来自专栏程序员八阿哥

菜鸟学Python(2):Python可迭代对象中的添加和删除(add,append,pop,remove,insert)

学习python的list,tuple,dict,set的时候被插入和删除的用法弄得有点晕,所以进行归纳,以便记忆

10510
来自专栏Golang语言社区

深入分析golang多值返回以及闭包的实现

一、前言 golang有很多新颖的特性,不知道大家的使用的时候,有没想过,这些特性是如何实现的?当然你可能会说,不了解这些特性好像也不影响自己使用golang,...

55560

扫码关注云+社区

领取腾讯云代金券