多态

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

 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设计模式》

posted on 2020-10-15 14:45  大黑ylx  阅读(61)  评论(0编辑  收藏  举报