JavaScript设计模式

学习JavaScript设计模式——面向对象(五)

2019-03-05  本文已影响0人  小霸王的铲屎官

面向对象(五)

多态

我仔细看了一下,这里说的JavaScript 的多态好像和Java的多态不一样,

还是有一些不同, 上代码

  // 多态
  function add() {
    // 获取参数
    let arg = arguments
    // 获取参数长度
    let 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() {
      let arg = arguments
      let len = arg.length
      
      switch(len) {
         case 0:
            return zero()
         case 1:
            return one(arg[0])
         case 2:
            return two(arg[0], arg[1])   
      }
   }
 }
 
 // 实例化类
 let A = new Add()
 // 测试
 console.log(A.add())      // 10
 console.log(A.add(5))     // 15
 console.log(A.add(6, 7))  // 13
 

总结一下(这里的能稍微看看就行)

在JavaScript中

封装

继承

面向对象基础就暂时这样了,后面就开始正式的面向对象的实战应用,设计模式了...

上一篇 下一篇

猜你喜欢

热点阅读