zoukankan      html  css  js  c++  java
  • 多态

      多态其实就是同一个方法多种调用的方式。

     1 // 多态
     2 function add() {
     3         // 获取参数
     4     var arg = arguments,
     5         // 获取长度
     6         len = arguments.length;
     7     switch(len) {
     8         // 如果没有参数
     9         case 0:
    10             return 10;
    11         // 如果只有一个参数
    12         case 1: 
    13             return 10 + arg[0];
    14         // 如果两个参数
    15         case 2:
    16             return arg[0] + arg[1];
    17     }
    18 }
    19 // 测试用例
    20 console.log(add()); // 10
    21 console.log(add(5)); // 15
    22 console.log(add(6,7)); // 13

      可以转化成更易懂的类形式:

     1 // 类形式
     2 function Add() {
     3     // 无参数算法
     4     function zero() {
     5         return 10
     6     }
     7     // 一个参数算法
     8     function one(num) {
     9         return 10 + num;
    10     }
    11     // 两个参数算法
    12     function two(num1 , num2) {
    13         return num1 + num2;
    14     }
    15     // 相加共有方法
    16     this.add = function() {
    17         var arg = arguments,
    18             // 获取参数长度
    19             len = arguments.length;
    20         switch(len) {
    21             // 如果没有参数
    22             case 0: 
    23                 return zero();
    24             // 如果只有一个参数
    25             case 1:
    26                 return one(arg[0]);
    27             // 如果有两个参数
    28             case 2: 
    29                 return two(arg[0], arg[1]);
    30         }
    31     }
    32 }
    33 
    34 // 实例化类
    35 var A = new Add();
    36 // 测试
    37 console.log(A.add()); // 10
    38 console.log(A.add(5)); // 15
    39 console.log(A.add(6,7)); // 13

    参考资料:《JavaScript设计模式》

  • 相关阅读:
    iscroll.js & flipsnap.js
    IE8’s Substr() Bug
    chrome扩展,如何阻止浏览自动关闭桌面通知.
    临时邮箱
    多个显示器, window.open的定位
    页面刷新
    PipelineDB Install and Test
    CitusDB UPSERT
    Kafka部署
    ambari-cassandra-service
  • 原文地址:https://www.cnblogs.com/daheiylx/p/13820489.html
Copyright © 2011-2022 走看看