《JavaScript设计模式》——2.5 多种调用方式——多态

    xiaoxiao2024-07-31  104

    本节书摘来自异步社区《JavaScript设计模式》一书中的第2章,第2.5节,作者:张容铭著,更多章节内容可以访问云栖社区“异步社区”公众号查看

    2.5 多种调用方式——多态

    “小铭,在面向对象编程中不是还有一种特性叫作多态么?在JavaScript中可以实现么?”

    “多态,就是同一个方法多种调用方式吧。在JavaScript中也是可以实现的,只不过要对传入的参数做判断以实现多种调用方式,如我们定义一个add方法,如果不传参数则返回10,如果传一个参数则返回10+参数,如果传两个参数则返回两个参数相加的结果。”

    //多态 function add(){     // 获取参数   var arg = arguments,     // 获取参数长度     len = arg.length;   switch(len){     // 如果没有参数     case 0:       return 10;     // 如果只有一个参数     case 1:       return 10 + arg[0];     // 如果有两个参数     case 2:       return arg[0] + arg[1];   } } // 测试用例 console.log(add());    // 10 console.log(add(5));    // 15 console.log(add(6,7));    // 13

    “当然我们还可以让其转化成更易懂的类形式:”

    function Add(){   // 无参数算法   function zero(){     return 10;   }   // 一个参数算法   function one(num){     return 10 + num;   }   // 两个参数算法   function two(num1, num2){     return num1 + num2;   }   // 相加共有方法   this.add = function(){     var arg = arguments,     // 获取参数长度     len = arg.length;     switch(len){       // 如果没有参数       case 0:         return zero();       // 如果只有一个参数       case 1:         return one(arg[0]);       // 如果有两个参数       case 2:         return two(arg[0], arg[1]);     }   }   } // 实例化类 var A = new Add(); //测试 console.log(A.add());    // 10 console.log(A.add(5));    // 15 console.log(A.add(6,7));  // 13

    “对于多态类,当我们调用add运算方法时,他会根据传参不同做相应运算,当然我们将不同运算方法封装在类内,这样代码更易懂。”

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)