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);
  • 相关阅读:
    mysql数据库存储的引擎和数据类型
    mysql数据库基本操作
    【转】linux yum命令详解
    [转]Linux rpm 命令参数使用详解
    【转】Linux GCC常用命令
    [转]linux下logrotate 配置和理解
    [转]Linux下chkconfig命令详解
    [转]linux之top命令
    [转]linux之ps命令
    互联网产品如何做到快与轻
  • 原文地址:https://www.cnblogs.com/le220/p/8588258.html
Copyright © 2011-2022 走看看