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

Posted 半指温柔乐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第202天: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);

 

以上是关于第202天:js---重载和多态的主要内容,如果未能解决你的问题,请参考以下文章

JS面向对象 关于类的封装继承多态

面向对象总结

c++基础04

韩顺平 java笔记 第9讲 第10讲 第11讲 第12讲 抽象 封装 继承 多态 方法重载 方法重写

java多态/重载方法——一个疑难代码引发的讨论

第202天学习打卡(本地事务 分布式事务存 CAP定理和BASE理论)