zoukankan      html  css  js  c++  java
  • 第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);
  • 相关阅读:
    C语言实现用户输入
    QQ头像一键添加校徽
    csu oj Infected Computer 1427
    质数个数
    stl实现结构体排序关键语法要点(sort)
    理解 PHP 中的 Streams
    几款主流PHP框架的优缺点评比
    8个开发必备的PHP功能
    5个开发人员不应该错过的最好跨平台PHP编辑器
    推荐五款优秀的PHP代码重构工具
  • 原文地址:https://www.cnblogs.com/le220/p/8588258.html
Copyright © 2011-2022 走看看