《JavaScript设计模式》——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运算方法时,他会根据传参不同做相应运算,当然我们将不同运算方法封装在类内,这样代码更易懂。”

时间: 2024-07-29 17:32:04

《JavaScript设计模式》——2.5 多种调用方式——多态的相关文章

JavaScript中具名函数的多种调用方式总结_javascript技巧

前面有一篇提到了 匿名函数的多种调用方式.这篇看看具名函数的多种调用方式. 1.()  平时最常用的就是()运算符来调用/执行一个函数: 复制代码 代码如下: // 无参函数fun1 function fun1() {     alert('我被调用了'); } fun1();   // 有参函数fun2 function fun2(param) {     alert(param); } fun2('我被调用了'); ECMAScript3后加入给Function加入了call和apply后,

WCF多种调用方式兼容

原文:WCF多种调用方式兼容 1.能被ajax get 2.能post 3.wcf正常调用 实现: 1 [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 2 [JavascriptCallbackBehavior(UrlParameterName = "jsoncallback")] 3 public class WCFJsonTest :

Javascript中匿名函数的多种调用方式总结_javascript技巧

Javascript中定义函数的方式有多种,函数直接量就是其中一种.如var fun = function(){},这里function如果不赋值给fun那么它就是一个匿名函数.好,看看匿名函数的如何被调用. 方式1,调用函数,得到返回值.强制运算符使函数调用执行 复制代码 代码如下: (function(x,y){     alert(x+y);     return x+y; }(3,4)); 方式2,调用函数,得到返回值.强制函数直接量执行再返回一个引用,引用再去调用执行 复制代码 代码如

Android开发中怎样调用系统Email发送邮件(多种调用方式)

我们都知道,在Android中调用其他程序进行相关处理,几乎都是使用的Intent,所以,Email也不例外. 在Android中,调用Email有三种类型的Intent: Intent.ACTION_SENDTO 无附件的发送 Intent.ACTION_SEND 带附件的发送 Intent.ACTION_SEND_MULTIPLE 带有多附件的发送 当然,所谓的调用Email,只是说Email可以接收Intent并做这些事情,可能也有其他的应用程序实现了相关功能,所以在执行的时候,会出现选择

Javascript中匿名函数的调用与写法实例详解(多种)_javascript技巧

Javascript中定义函数的方式有多种,函数直接量就是其中一种.如var fun = function(){},这里function如果不赋值给fun那么它就是一个匿名函数.好,看看匿名函数的如何被调用. 方式1,调用函数,得到返回值.强制运算符使函数调用执行 (function(x,y){ alert(x+y); return x+y; }(3,4)); 方式2,调用函数,得到返回值.强制函数直接量执行再返回一个引用,引用再去调用执行 (function(x,y){ alert(x+y);

JavaScript实现网页图片等比例缩放实现代码及调用方式_javascript技巧

在处理网页图片时,特别是一些图片列表的应用里面,很难保证图片统一大小,直接设置图片大小又会导致图片拉伸,造成图片模糊,本文介绍的代码可以在图片加载完成后自动按比例调整图片大小. Javascript: 复制代码 代码如下: < script language="javascript" type="text/javascript"> < !-- // 说明:用 JavaScript 实现网页图片等比例缩放 // 整理:http://www.CodeB

javascript 具名函数的四种调用方式 推荐第1/3页_javascript技巧

1.()小括号运算符 平时最常用的就是()运算符来调用一个函数 复制代码 代码如下: //无参函数fun1 function fun1() { alert('我被调用了'); } fun1() //有参函数fun2 function fun2(param) { alert(param); } fun2('我被调用了') ECMAScript3后加入给Function加入了call和apply后,就有了下面两种 2.call 复制代码 代码如下: //无参函数fun1 function fun1(

《JavaScript设计模式》——1.11 换一种方式使用方法

1.11 换一种方式使用方法 "可是在你测试的时候,你用的是函数式调用方式?对于习惯于类式调用方式的同学来说,他们可以这样简单更改一下." Function.prototype.addMethod = function(name, fn){ this.prototype[name] = fn; } "此时我们还按照上一种方式添加方法." var Methods = function(){}; methods.addMethod('checkName', functi

常用的Javascript设计模式

<Practical Common Lisp>的作者 Peter Seibel 曾说,如果你需要一种模式,那一定是哪里出了问题.他所说的问题是指因为语言的天生缺陷,不得不去寻求和总结一种通用的解决方案. 不管是弱类型或强类型,静态或动态语言,命令式或说明式语言.每种语言都有天生的优缺点.一个牙买加运动员, 在短跑甚至拳击方面有一些优势,在练瑜伽上就欠缺一些. 术士和暗影牧师很容易成为一个出色的辅助,而一个背着梅肯满地图飞的敌法就会略显尴尬. 换到程序中, 静态语言里可能需要花很多功夫来实现装饰