博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《JavaScript设计模式》——2.5 多种调用方式——多态
阅读量:6417 次
发布时间:2019-06-23

本文共 1280 字,大约阅读时间需要 4 分钟。

本节书摘来自异步社区《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());    // 10console.log(add(5));    // 15console.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());    // 10console.log(A.add(5));    // 15console.log(A.add(6,7));  // 13

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

转载地址:http://wovra.baihongyu.com/

你可能感兴趣的文章
图片自适应
查看>>
【opengl】绘制一个立方体并在表面添加文字(添加文理)
查看>>
Distributed vSwitch分布式交换机
查看>>
用java实现短信发送的实例分享
查看>>
《构建之法》阅读笔记及项目管理软件
查看>>
VC中动态分配的几种写法
查看>>
excel数据比对,查找差异
查看>>
python3 简单登录,注册测试代码
查看>>
MAC VMWare Fusion配置mac和win7虚拟机互相访问
查看>>
awk正则匹配和awk命令统计某程序的CPU总的利用率
查看>>
CentOS7安装grafana
查看>>
bzoj 1823: [JSOI2010]满汉全席
查看>>
实战部署openldap主从架构
查看>>
我的技术路还很长
查看>>
第二阶段团队进展报告(4)
查看>>
Nginx:强劲的Web引擎
查看>>
vector容器与find算法
查看>>
Socket粘包问题
查看>>
python 点滴记录15:MAC OS安装MySQLdb
查看>>
JAVA教程 第五讲 AWT图形用户界面设计
查看>>